我想让我的单元测试文件与测试文件位于同一路径。
使用SPM我无法让它发挥作用。为了更清楚地说明我想要这样的东西:
Sources
-- MyPackage
----- MyCode.swift
----- MyCodeTests.swift
Swift Package Manager 不是为这种目录结构设计的。您的测试和源位于不同的目标中,最容易通过指定包含该目标的所有源的目录来声明它们。
虽然这在技术上是可行的,但并不实际。您需要分别列出包的所有源文件和单元测试,因为不同目标的文件不能重叠。
这意味着您每次添加/删除/重命名文件时都需要编辑 Package.swift。
这是一个例子:
let package = Package(
name: "MyPackage",
targets: [
.executableTarget(
name: "MyPackage",
sources: ["MyCode.swift", /* every other source file */]
),
.testTarget(
name: "MyPackageTests",
dependencies: ["MyPackage"],
path: "Sources/MyPackage",
sources: ["MyCodeTests.swift", /* every other test file */]
)
]
)