Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode xtest:如果我';我只对我的测试目标进行了更改_Xcode_Xctest - Fatal编程技术网

Xcode xtest:如果我';我只对我的测试目标进行了更改

Xcode xtest:如果我';我只对我的测试目标进行了更改,xcode,xctest,Xcode,Xctest,就源文件的数量和代码行而言,我的Xcode项目非常大。 当我只对XTest代码进行更改,并点击在单个测试、单个测试文件甚至整个测试套件上运行时,Xcode会首先重新编译我的主机应用程序,即使主机应用程序中没有更改任何文件。每次我对任何测试文件进行任何更改时,它都会这样做 这给编写测试带来了效率挑战,因为测试代码中的小调整需要很长时间才能重新运行和验证。(每次运行超过3分钟-是的,这是一个非常大的项目,我们已经采取了许多步骤,通过检查构建日志等来缩短构建时间。) 使用Xcode 10.3和Swif

就源文件的数量和代码行而言,我的Xcode项目非常大。 当我只对XTest代码进行更改,并点击在单个测试、单个测试文件甚至整个测试套件上运行时,Xcode会首先重新编译我的主机应用程序,即使主机应用程序中没有更改任何文件。每次我对任何测试文件进行任何更改时,它都会这样做

这给编写测试带来了效率挑战,因为测试代码中的小调整需要很长时间才能重新运行和验证。(每次运行超过3分钟-是的,这是一个非常大的项目,我们已经采取了许多步骤,通过检查构建日志等来缩短构建时间。)

使用Xcode 10.3和Swift 4.2

测试使用的是:

@testable import MyModuleName
如果我只更改了测试,有没有办法防止Xcode重新构建整个项目

我发现了问题

我们在项目的构建阶段部分有一些定制脚本,它们实际上改变了代码库中的一些可编译资产。我们还有一个迦太基依赖复制阶段

从构建阶段中注释掉这两个阶段可以使整个项目在仅更改测试时不会重新编译。这些脚本实际上是在对可编译代码进行更改,使XCode强制重新编译

故事的寓意:检查构建阶段是否有任何可能修改源代码的步骤,包括可能是目标的一部分的资源文件。我们将在将来尝试以更自动化的方式完成这项工作,而不必对这些构建步骤进行注释

我发现了问题

我们在项目的构建阶段部分有一些定制脚本,它们实际上改变了代码库中的一些可编译资产。我们还有一个迦太基依赖复制阶段

从构建阶段中注释掉这两个阶段可以使整个项目在仅更改测试时不会重新编译。这些脚本实际上是在对可编译代码进行更改,使XCode强制重新编译


故事的寓意:检查构建阶段是否有任何可能修改源代码的步骤,包括可能是目标的一部分的资源文件。我们将在将来尝试以更自动化的方式完成这项工作,而不必对这些构建步骤进行注释

对于运行脚本的构建阶段,我们必须为此明确添加输入/输出文件或文件列表。对于运行脚本的构建阶段,我们必须为此明确添加输入/输出文件或文件列表。