0

我一直在绕圈子。基本上,我在一台机器上安装了 Jenkins,并将 Mac 服务器作为单独的 iOS 构建服务器。我需要能够运行单元测试,然后在 Mac Mini 上运行 Jenkins 的代码覆盖率。我有一个可以运行测试的脚本,当它从机器本身的命令行运行时,它可以完美运行。问题是当我尝试从 Jenkins 运行它时,实际测试没有运行。它运行整个构建过程,然后报告“测试成功”,而不实际运行任何测试。基本上,当我 ssh 进入机器时,我需要能够运行测试。

我正在使用 gcovr 为单元测试覆盖率创建 xml 文件。我考虑使用 xctool,它似乎可以运行,但只创建 gcda 文件,而不是 gcno,所以我无法让它工作。

在这一点上把我的头撞在墙上,所以任何帮助表示赞赏。

我正在运行的命令:xcodebuild -workspace MyProject.xcworkspace -scheme MyProject -sdk iphonesimulator test

在登录到机器时从命令行运行时运行良好,但在我 ssh 时不运行任何测试。

4

2 回答 2

0

似乎您必须从从用户的 GUI 启动的进程(例如使用 ~/Library/LaunchAgents 代理/守护程序)运行 xcode 单元测试。

您可以使用服务器或守护程序(从 GUI/终端或 LaunchControl 启动)来运行您的单元测试。这是一个用 Go 编写的服务器,它正是这样做的。

于 2014-09-15T19:44:24.987 回答
0

问题是我从两个不同的地方拉起模拟器。所以,如果我直接在构建机器上运行脚本,模拟器就会出现。如果我随后尝试通过 ssh 运行脚本,它会尝试启动已经启动并锁定的模拟器。

解决方案?在脚本顶部,杀死任何正在运行的模拟器:

pkill -i simulator

可能不优雅,但可以解决问题。

于 2013-11-20T03:45:41.720 回答