Bitrise执行Swift Package测试时无法找到Xcode测试包求助
环境配置
我有一个引用多个本地Swift包的Xcode项目,这些包包含需要在Bitrise上执行的测试。我创建了名为CI.xctestplan的测试计划,并将其关联到名为Debug的Scheme(命名为Debug是历史遗留原因)。
为了把包测试添加到测试计划,我需要从项目导航器的Package Dependencies里把这些包拖到主项目中——否则在测试计划里根本看不到这些包的测试目标。每次拖完之后必须重启Xcode,这些包才会变成可展开状态、能作为测试目标使用,同时从Package Dependencies列表中消失。
正常运行情况
- 本地通过Xcode运行测试完全正常
- 本地通过命令行执行测试也正常
- 可以在Bitrise上单独运行单个包的测试
问题详情
使用Bitrise的「Xcode Test for iOS 6.0.0」步骤运行测试时,会报错:
Failed to build project MyApp with scheme Debug.: There are no test bundles available to test.
这个错误持续出现,哪怕多次运行同一分支且期间没有其他构建任务。
已尝试的解决方法
我怀疑是缓存问题(和本地需要重启Xcode的情况类似),所以禁用了Bitrise中的restore-spm-cache步骤,但问题依然存在。
目前我能单独测试单个包,但需要同时测试多个包,希望通过测试计划保证本地和CI执行的测试完全一致。
这个问题和本地切换分支的情况类似:如果切到没有用同样方式添加这些包的分支,再切回来,包会变回不可展开状态,重新出现在Package Dependencies列表里,必须重启Xcode才能恢复。
看起来CI环境中的Xcode需要某种刷新或重启操作,但我不知道仅通过命令行测试怎么实现。有没有人遇到过这个问题,或者知道怎么解决Bitrise和Swift Package测试的这个兼容问题?
内容的提问来源于stack exchange,提问作者Lucas van Dongen

