如何在iOS中将一个测试目标文件用于两个应用目标?

我搜索了许多解决此问题的方法之后写这篇文章。 但是我找不到解决我问题的合适方法。

实际上,问题是“我的应用程序中有两个目标分别为SampleB2BSampleB2C 。 这两个目标相似,只是变化不大。 因此,当我尝试为两个目标编写XCTestCase时,我认为两个目标都有一个测试目标文件。 因为所有测试文件都是相似的。 因此,考虑为两个目标编写一个测试文件。 但是我找不到一种对两个目标使用相同的测试文件的方法。”

这是我在项目中使用测试用例文件的方法,以同时将测试用例文件用于两个目标。 请按部就班。

最初,我只有一个目标,后来又改变了要求。 因此,我需要再创建一个目标。 因此,我只是从现有目标复制来创建另一个目标,然后重命名以区分这两个目标。 完成后,将类似于下面的快照。

我有两个上述目标,有一个测试目标是在创建项目时创建的。

现在,我在“ SampleTests ”文件夹中有一个测试用例文件。 所以我需要使用相同的文件来测试两个目标。

所以我做了以下。

  1. 因此,现在,我们需要从上面的窗口中再创建一个测试目标。 不要从“文件”->“目标”创建测试目标。 如果要从中创建,则它将为新创建的创建测试目标文件夹。

实际上,在开始测试时,测试文件需要位于同一测试目标文件夹中。 这导致在两个测试目标中创建重复文件。 两个测试目标文件夹下的两个文件中的文件内容相同。 我想以更好的方式做到这一点。 因此,我尝试了其他任何方法来将相同文件用于两个测试目标。

因此,右键单击现有的目标SampleTests,然后单击重复。 然后重命名测试目标,以区分并重命名所有目标的Info.plist,并在“ 对应目标”->“构建设置”->“ Info.plist”文件名中提供相应的Info.plist文件路径 一旦完成,它将像

现在,我有两个目标,其中两个是测试目标,一个是测试文件夹和测试文件。

2.为两个测试目标选择相应的主机应用程序,如下面的快照。

3.在两个测试目标的活动编译标志中添加标志,以在运行时区分当前目标。 选择测试目标->构建设置->活动编译条件,如下面的快照。

B2B测试目标中添加B2B标志,在B2C测试目标中添加B2C标志。 它将在步骤5中使用。

4.在添加或创建新的测试用例文件时,请确保为两个测试目标都添加了文件。 也检查现有文件的目标成员资格

5.在测试文件顶部添加以下代码。 导入项目模块取决于当前的目标。

#if B2B

@testable导入SampleB2B

#其他

@testable导入SampleB2C

#万一

如果要基于目标更改测试用例文件,我们可以使用同一段代码来区分。

6.单击目标编辑方案,然后添加测试目标,如下所示。 对两个目标都执行此步骤。 为相应的应用目标添加相应的测试目标。

7.添加您的测试用例方法和API验证方法。

8.只需切换目标接近运行按钮即可在目标之间切换。

然后用Product-> Test或⌘U测试整个测试用例文件。 悬停时,也可以通过单击每个测试方法左侧的菱形运行按钮来运行单个测试方法。


我希望你有东西。 我已经用媒介写了我的第一篇文章。 希望它有用。

如果喜欢,别忘了鼓掌。

学分:Ezhil Adhavan