You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift Package中能否将单元测试文件与被测试文件放在同一路径?

在Swift Package Manager中实现测试文件与源码同目录

SPM默认要求测试代码放在独立的Tests目录下,但可以通过自定义包配置实现你想要的同目录结构。

实现步骤

  1. 保持你期望的目录结构:
Sources
 -- MyPackage
 ----- MyCode.swift
 ----- MyCodeTests.swift
  1. 修改Package.swift配置:
    在包的manifest文件中,分别定义主源码目标和测试目标,指定各自的源文件路径:
// swift-tools-version: 5.9
import PackageDescription

let package = Package(
    name: "MyPackage",
    products: [
        .library(
            name: "MyPackage",
            targets: ["MyPackage"]),
    ],
    targets: [
        // 主源码目标:排除测试文件
        .target(
            name: "MyPackage",
            path: "Sources/MyPackage",
            exclude: ["MyCodeTests.swift"]),
        // 测试目标:指定同目录下的测试文件
        .testTarget(
            name: "MyPackageTests",
            dependencies: ["MyPackage"],
            path: "Sources/MyPackage",
            sources: ["MyCodeTests.swift"]),
    ]
)

关键说明

  • 主目标通过exclude参数排除测试文件,避免测试代码被编译进正式库
  • 测试目标通过path指向源码目录,再用sources明确指定测试文件路径
  • 配置完成后,SPM会正确识别两类文件,同时保持你想要的同目录布局

内容的提问来源于stack exchange,提问作者tisma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 13:58:09