/src: 错误: 找不到目标的源文件: MyKituraAppTests;使用 Swift 4 清单中的"path"属性设置自定义目标路径



我正在尝试使用swift build进行编译

包装.swift

// swift-tools-version:4.2
// The swift-tools-version declares the minimum version of Swift required to build this package.
// swift-tools-version:x.x
import PackageDescription
let package = Package(
name: "MyKituraApp",
dependencies: [
.package(url: "https://github.com/IBM-Swift/Kitura", from: "2.7.0")
],
targets: [
.target(
name: "MyKituraApp",
dependencies: ["Kitura"],
path: "Sources"),
.testTarget(
name: "MyKituraAppTests",
dependencies: ["MyKituraApp"],
path: "Test")
]
)

但是,尽管我确实添加了 path 属性,但我收到以下错误。

'MyKituraApp'/src:error: 找不到目标的源文件: MyKituraAppTests;使用 Swift 4 清单中的 'path' 属性设置自定义目标路径

在不知道你的项目结构的情况下,我不能给你一个明确的答案,但我会尽力而为!

我假设你已经使用 Swift 包管理器工具生成了你的项目,如下所示:swift package init --type executable

所以。。。通常,除非已将应用程序的测试移动到另一个目录,否则不需要设置path属性。默认情况下,Swift 包管理器将创建一个Tests目录,当您不为path属性提供值时,Swift 包管理器将在您运行swift build时默认查找该Tests目录。在path属性中,您提供的值为Test而不是Tests

所以我的第一个测试解决方案是: 从.testTarget部分中删除path属性

path属性值重命名为Tests而不是Test

我提供了一个示例包.swift我能够使用它运行swift build

// swift-tools-version:4.2
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "MyKituraApp",
dependencies: [
.package(url: "https://github.com/IBM-Swift/Kitura", from: "2.7.0")
],
targets: [
.target(
name: "MyKituraApp",
dependencies: ["Kitura"],
path: "Sources"),
.testTarget(
name: "MyKituraAppTests",
dependencies: ["MyKituraApp"])
]
)

如您所见,我还从文件顶部删除了一行额外的行:// swift-tools-version:x.x

您已经在文件顶部提供了一个swift-tools-version,这一行最终可能会在以后混淆事情。

我希望这有帮助!

最新更新