swift 对两个项目目标进行相同的单元/UI测试?

xghobddn  于 11个月前  发布在  Swift
关注(0)|答案(3)|浏览(110)

我想添加单元和UI测试到我的iOS项目上,它有2个目标A和B。A和B是应用程序的风格,具有相同的逻辑,但具有不同的风格(颜色,字体..)。
当我尝试从+按钮添加一个测试目标时,它要求我选择一个要测试的目标A或B。我的测试在两个目标上是相同的。
这是我困惑的地方。我怎么能在所有目标上都有相同的单元测试?谢谢。

u3r8eeie

u3r8eeie1#

单个测试目标中不能有两个host applications,必须选择(n)个。

但是如果两个目标的代码是相同的,我想你选择哪一个并不重要?
当然,你也可以像你的逻辑代码那样做,这意味着让相同的(测试)代码成为两个测试目标的“成员”,但是我不认为测试同样的东西两次有什么意义。
似乎也可以设置测试,使它们不依赖于特定的host application,如以下链接所述,但这也有一些限制。https://clean-swift.com/how-to-make-your-unit-tests-run-faster
我会选择第一种方法:只选择一个主机(应用程序目标),然后去做。

nzk0hqpo

nzk0hqpo2#

而不是维护两个目标基本相同的代码,我会建议你两个维护一个单一的目标,并自定义每一个风格与方案和脚本。这也允许您共享这些方案和脚本在您的单一测试目标,让您测试同一个应用程序的不同风格。

voase2hg

voase2hg3#

如果您有多个目标,那么有一些步骤可以帮助我们为下面提到的两个目标配置单个XCTestCase文件:

**第一步:**右键单击已有目标SampleTests,单击复制,然后重命名测试目标,区分所有,重命名Info.plist,并在对应目标-> Build Settings-> Info.plist文件名中给予相应的Info. plist文件路径。
**第二步:**为两个测试目标选择对应的宿主应用。
**第三步:**在两个测试目标的主动编译标志中添加一个标志,以区分当前目标在运行时的情况,选择测试目标->构建设置->主动编译条件
**第四步:**在添加或新建测试用例文件时,请确保为两个测试目标都添加了测试用例文件,并检查现有文件的目标成员身份。
**第五步:**根据当前Target调整项目模块。

如果A

@testable import A

else

@可测试导入B

endif

第6步:单击Target和Edit Scheme,然后添加测试目标。

相关问题