             let fileName = "file.swift"
             let subgroupPath = subgroupNames.joined(separator: "/")
             let filePath = Path("\(sourceRoot.string)\(mainGroupPath)/\(subgroupPath)/\(fileName)")
-            try Data().write(to: filePath.url)
+            try createFile(at: filePath)
             let file = try updater.addFile(to: project, at: filePath)
             let fileFullPath = try file.fullPath(sourceRoot: sourceRoot)
             XCTAssertEqual(

            let fileName = "file.swift"
            let subgroupPath = subgroupNames.joined(separator: "/")
            let filePath = Path("\(sourceRoot.string)\(mainGroupPath)/\(subgroupPath)/\(fileName)")
            try Data().write(to: filePath.url)
            let firstFile = try updater.addFile(to: project, at: filePath)
            let parentGroup = proj.groups.first(where: { $0.path == subgroupNames.last! })!
            let secondFile = try updater.addFile(to: parentGroup, fileName: fileName)

        try! proj.batchUpdate(sourceRoot: sourceRoot) { updater in
            let fileName = "file.swift"
            let filePath = Path("\(sourceRoot.string)\(mainGroupPath)/\(fileName)")
            try createFile(at: filePath)
            let firstFile = try updater.addFile(to: project, at: filePath)
            let secondFile = try updater.addFile(to: mainGroup, fileName: fileName)
            let firstFileFullPath = try firstFile.fullPath(sourceRoot: sourceRoot)
