0

我正在尝试使用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:错误:找不到目标的源文件:MyKituraAppTests;使用 Swift 4 清单中的“路径”属性设置自定义目标路径

4

1 回答 1

0

在不知道您的项目结构的情况下,我无法给您明确的答案,但我会尽力而为!

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

所以... 通常您不需要设置该path属性,除非您已将应用程序的测试移动到另一个目录。默认情况下,Swift 包管理器将创建一个Tests目录,如果您没有为该属性提供值,则 Swift 包管理器将在您运行时默认path查找该目录。在您的财产中,您提供的价值不是Testsswift buildpathTestTests

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

或者

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在文件顶部提供了 a ,这一行可能会在后面的内容中造成混淆。

我希望这有帮助!

于 2019-06-10T06:22:03.980 回答