/src: error: could not find source files for target(s): MyKituraAppTests; use the 'path' property in the Swift 4 manifest to set a custom target path

/src: error: could not find source files for target(s): MyKituraAppTests; use the 'path' property in the Swift 4 manifest to set a custom target path

我正在尝试使用 swift build

进行编译

Package.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")
    ]
)

但是,尽管我确实添加了路径 属性.

,但还是出现了以下错误

'MyKituraApp' /src: error: could not find source files for target(s): MyKituraAppTests; use the 'path' property in the Swift 4 manifest to set a custom target path

在不了解你的项目结构的情况下,我无法给你一个明确的答案,但我会尽力而为!

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

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

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

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

我提供了一个示例 Package.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,这一行可能会在以后造成混淆。

希望对您有所帮助!