我想添加单元和UI测试到我的iOS项目上,它有2个目标A和B。A和B是应用程序的风格,具有相同的逻辑,但具有不同的风格(颜色,字体..)。当我尝试从+按钮添加一个测试目标时,它要求我选择一个要测试的目标A或B。我的测试在两个目标上是相同的。这是我困惑的地方。我怎么能在所有目标上都有相同的单元测试?谢谢。
u3r8eeie1#
单个测试目标中不能有两个host applications,必须选择(n)个。
host applications
但是如果两个目标的代码是相同的,我想你选择哪一个并不重要?当然,你也可以像你的逻辑代码那样做,这意味着让相同的(测试)代码成为两个测试目标的“成员”,但是我不认为测试同样的东西两次有什么意义。似乎也可以设置测试,使它们不依赖于特定的host application,如以下链接所述,但这也有一些限制。https://clean-swift.com/how-to-make-your-unit-tests-run-faster我会选择第一种方法:只选择一个主机(应用程序目标),然后去做。
host application
nzk0hqpo2#
而不是维护两个目标基本相同的代码,我会建议你两个维护一个单一的目标,并自定义每一个风格与方案和脚本。这也允许您共享这些方案和脚本在您的单一测试目标,让您测试同一个应用程序的不同风格。
voase2hg3#
如果您有多个目标,那么有一些步骤可以帮助我们为下面提到的两个目标配置单个XCTestCase文件:
**第一步:**右键单击已有目标SampleTests,单击复制,然后重命名测试目标,区分所有,重命名Info.plist,并在对应目标-> Build Settings-> Info.plist文件名中给予相应的Info. plist文件路径。**第二步:**为两个测试目标选择对应的宿主应用。**第三步:**在两个测试目标的主动编译标志中添加一个标志,以区分当前目标在运行时的情况,选择测试目标->构建设置->主动编译条件**第四步:**在添加或新建测试用例文件时,请确保为两个测试目标都添加了测试用例文件,并检查现有文件的目标成员身份。**第五步:**根据当前Target调整项目模块。
@testable import A
@可测试导入B
第6步:单击Target和Edit Scheme,然后添加测试目标。
3条答案
按热度按时间u3r8eeie1#
单个测试目标中不能有两个
host applications
,必须选择(n)个。但是如果两个目标的代码是相同的,我想你选择哪一个并不重要?
当然,你也可以像你的逻辑代码那样做,这意味着让相同的(测试)代码成为两个测试目标的“成员”,但是我不认为测试同样的东西两次有什么意义。
似乎也可以设置测试,使它们不依赖于特定的
host application
,如以下链接所述,但这也有一些限制。https://clean-swift.com/how-to-make-your-unit-tests-run-faster我会选择第一种方法:只选择一个主机(应用程序目标),然后去做。
nzk0hqpo2#
而不是维护两个目标基本相同的代码,我会建议你两个维护一个单一的目标,并自定义每一个风格与方案和脚本。这也允许您共享这些方案和脚本在您的单一测试目标,让您测试同一个应用程序的不同风格。
voase2hg3#
如果您有多个目标,那么有一些步骤可以帮助我们为下面提到的两个目标配置单个XCTestCase文件:
**第一步:**右键单击已有目标SampleTests,单击复制,然后重命名测试目标,区分所有,重命名Info.plist,并在对应目标-> Build Settings-> Info.plist文件名中给予相应的Info. plist文件路径。
**第二步:**为两个测试目标选择对应的宿主应用。
**第三步:**在两个测试目标的主动编译标志中添加一个标志,以区分当前目标在运行时的情况,选择测试目标->构建设置->主动编译条件
**第四步:**在添加或新建测试用例文件时,请确保为两个测试目标都添加了测试用例文件,并检查现有文件的目标成员身份。
**第五步:**根据当前Target调整项目模块。
如果A
@testable import A
else
@可测试导入B
endif
第6步:单击Target和Edit Scheme,然后添加测试目标。