有没有办法让单元测试文件与 Swift 包中的测试文件位于同一路径?

问题描述 投票:0回答:1

我想让我的单元测试文件与测试文件位于同一路径。

使用SPM我无法让它发挥作用。为了更清楚地说明我想要这样的东西:

Sources
 -- MyPackage
 ----- MyCode.swift
 ----- MyCodeTests.swift
swift xcode unit-testing package swift-package-manager
1个回答
0
投票

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 */]
        )
    ]
)
© www.soinside.com 2019 - 2024. All rights reserved.