【问题标题】:In Xcode, how to not run certain Run Script Build Phases when running Tests?在 Xcode 中,如何在运行测试时不运行某些运行脚本构建阶段?
【发布时间】:2015-06-09 21:04:37
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我相信运行脚本有一个仅在安装时运行脚本选项。这对你有帮助吗?
  • @PetahChristian 这不会完全有帮助,因为至少需要一个脚本来运行每个构建,而不仅仅是在安装时。

标签: ios xcode testing aggregate target


【解决方案1】:

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

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

  • 如果可能:您可以检查您的脚本是否“调试”或“发布” 如果它足以检查这两个选项,您可以使用它:

    wantedConfig="Debug"; currentConfig="$CONFIGURATION"    
    if [ $currentConfig=$wantedConfig ]; then
      echo "Now Im on a debug mode and will do all you want here";
    fi
    
  • 您还可以创建自己的环境变量,例如:

TEST_MODE=YES

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

currentConfig="$TEST_MODE"

【讨论】:

    【解决方案2】:

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

    您可以创建一个预操作(转到“编辑方案”)-在那里您可以添加 一个运行脚本,它只会在您选择运行时执行 方案。你必须知道的是:Pre-Actions 在另一个线程上, 因此,如果您想停止构建过程,它将无法正常工作

    如果可能:您可以检查您的脚本是否“调试”或 “释放”你可以使用它,如果它足以检查这两个 像这样的选项:

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

    TEST_MODE=YES

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

    currentConfig="$TEST_MODE"

    逻辑是存在的,但即使配置不同,它也会不断出现在内部。经过一些调试和搜索,这是工作的 sn-p :

    wantedConfig="PROD"
    currentConfig="${CONFIGURATION}"  
    echo "currentConfig = $CONFIGURATION"
    if [ "$currentConfig" = "$wantedConfig" ]; then
        echo "begin action"
    fi
    

    【讨论】:

    • 完全引用另一个答案有什么意义?如果这个答案是为了纠正它,你可以链接到它。
    • 正如我所说,当我试图复制并粘贴给定的 sn-p 时,即使实际值不同,它也会不断进入 if。我不知道为什么它不起作用,我对脚本语法和东西不太熟悉。但是经过一些调试(我在 if 内的 = 之间添加了空格),现在它可以工作了。我附上了 sn-p 以帮助那些没有多余时间想知道它有什么问题的人。
    猜你喜欢
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 2010-11-24
    • 2010-11-23
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    相关资源
    最近更新 更多