使用Swift Package Manager时出现“模块未编译用于测试”的错误。

9
我使用swift package init --type library命令创建了Swift库,并用swift package generate-xcodeproj命令生成了Xcode项目。
现在我正在尝试在Xcode中运行测试模式。但是它输出以下错误:
Module '<title>' was not compiled for testing

然而,当我在终端中运行swift buildswift test时,它可以正常工作。

我已经在所有目标中将ENABLE_TESTABILITY设置为YES。除此之外,我没有更改项目的任何内容。如何使Xcode执行单元测试?


似乎Swift-PM 3.1已经解决了这个问题(它不再在Xcode项目中生成单独的测试方案)。 - egor.zhdan
3个回答

11

您需要在“主目标”中的构建设置中将“启用可测试性”设置为“是”

enter image description here


太好了。非常感谢你的提示。 - fanton

5
今天我遇到了这个问题,似乎在使用由Swift Package Manager生成的项目中无法使用@testable
从我的导入语句中移除@testable解决了这个问题。当然,这意味着我们只能测试模块的公共接口。

1
这方面有任何更新吗?现在是否可以在Swift Package中启用可测试性?还是解决方案仍然是在包内创建多模块层次结构? - barksten

-1
  1. Xcode -> 产品 -> 方案 -> 编辑方案

  2. 选择信息选项卡。

  3. 设置以下内容 - 构建配置:调试 为调试可执行文件添加复选标记

使用Xcode 12.4(12D4e)和iOS 14.1部署目标进行测试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接