【问题标题】:Unit tests using xcodebuild from another machine使用来自另一台机器的 xcodebuild 进行单元测试
【发布时间】:2013-11-19 03:45:20
【问题描述】:

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

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

在这一点上我的头撞到墙上,所以任何帮助表示感谢。

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

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

【问题讨论】:

    标签: ios xcode unit-testing xcodebuild gcovr


    【解决方案1】:

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

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

    pkill -i simulator
    

    可能不优雅,但可以。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-06
        • 1970-01-01
        • 2012-07-18
        • 2017-03-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多