在Xcode中,如何在运行测试时不运行某些运行脚本构建阶段?

时间:2015-06-09 21:04:37

标签: ios xcode testing aggregate target

我的项目当前已设置好,因此MyApp目标包含一些运行脚本构建阶段。这些脚本取决于构建阶段的顺序。例如,有一个脚本在Copy Bundle Resources之前运行,另一个在之后运行。

我的测试目标取决于MyApp,所以当我运行测试(产品菜单,测试)时,我不想包含其中一些脚本,因为它会减慢测试速度。

我想创建一个包含MyApp目标的聚合目标。然后在测试MyApp和Aggregate时移动我不想运行的脚本。但是,我没有看到如何通过执行此操作来配置这些脚本运行时的相同顺序。

有办法做到这一点吗?或者也许是一个更好的解决方案?

2 个答案:

答案 0 :(得分:1)

这取决于你的脚本在做什么:

  • 您可以创建一个预操作(转到"编辑方案") - 在那里您可以添加一个运行脚本,它只会在您运行所选方案时执行。 你必须知道的是:预先行动是在另一个线程上,所以如果你想停止建设过程它就不会工作

  • 如果可能:您可以查看您的脚本是否" debuging"或者"发布" 你可以使用它,如果它足以检查这两个选项,如:

** wantedConfig ="调试和#34 ;; currentConfig =" $ CONFIGURATION"
if [$ currentConfig = $ wantedConfig];然后   echo"现在我处于调试模式,并且会在这里做你想做的所有事情&#34 ;; 音响**

  • 您还可以创建自己的环境变量,如:

    <强> TEST_MODE =是

..并像上面的例子一样使用它:

currentConfig =&#34; $ TEST_MODE&#34;

答案 1 :(得分:0)

<块引用>

这取决于您的脚本在做什么:

您可以创建一个 Pre-Action(转到“edit-scheme”) - 您可以在那里添加 一个运行脚本,它只会在您选择运行时执行 方案。你必须知道的是:Pre-Actions 在另一个线程上, 所以如果你想停止构建过程,它就行不通

如果可能:如果“调试”或 “释放”你可以使用它,如果它足以检查这两个 选项如:

wantedConfig="调试"; currentConfig="$CONFIGURATION" 如果 [ $currentConfig=$wantedConfig ];然后回显“现在我处于调试模式 并会在这里做你想做的一切"; fi 你也可以创建你自己的 环境变量,如:

TEST_MODE=YES

..并像上面的例子一样使用它:

currentConfig="$TEST_MODE"

逻辑在那里,但即使配置不同,它也会不断进入内部。经过一些调试和搜索,这是工作片段:

board_state[1][1] != None