我最近更新到Xcode 7 beta 5。我尝试在早期的项目中添加一个单元测试,但是我在@可测试的导入myModuleName行上得到了错误消息“没有这样的模块[myModuleName]”。

我试着

使用“选项清理生成文件夹”清理项目 检查“启用可测试性”(调试)在构建选项中设置为“是” 删除测试目标,然后重新添加iOS单元测试包

这些都不适用于这个项目(但是我已经在另一个项目中进行了测试)。有人遇到过这个问题并解决了吗?


当前回答

正如在这个答案中所描述的,我正在将Swift测试添加到一个只使用Obj-C的项目中。解决方案是添加一个虚拟的Swift类,之后Xcode会提示添加一个桥接头,然后删除Swift类。从那以后一切都好了。

其他回答

我的解决方案在这里。

首先单击OdeAlSwiftUITest.swift,然后在目标成员中检查项目TargetName。

这是我在Xcode 13.1中使用的方法:

在Xcode Preferences > Locations的Locations选项卡中,我定义了一个自定义位置:

这不仅导致单元测试失败,出现可怕的“没有这样的模块”错误,而且还导致“命令CodeSign失败,退出码非零”和其他警告和错误。

将设置更改为唯一:

解决了所有问题。

当我将部署目标从9.3更改为11.0时,这为我修复了。

一般>部署目标>“11.0”

这里还有一件没有列出的事情需要检查。对我来说,这与我的团队有关,也许是因为我们团队的经纪人还没有同意最新的许可协议!一旦我在目标的一般设置中选择了一个不同的团队,然后我指定了一个特定的部署目标,比如12.1或11.0,突然“没有这样的模块”警告消失了。

一个需要注意的问题是,如果你的模块名中有一个破折号,那么你就必须用下划线来代替_。出于某种原因,我怀疑这可能是一个问题,这确实是我的问题。

如。@可测试import Ocean-Swift变成@可测试import Ocean_Swift

还有一件事,如果您确实使用@可测试语法,请确保在测试目标中不包含您的生产代码。我发现这会引起莫名的奇怪。