用相同的测试测试两个目标

Posted

技术标签:

【中文标题】用相同的测试测试两个目标【英文标题】:Testing two targets with same tests 【发布时间】:2016-06-08 08:50:35 【问题描述】:

我的项目有 3 个目标:

    应用目标 单元测试目标(宿主应用 >> 1.) UI 测试目标(目标应用 >> 1.)

现在,在我为不同的品牌添加了一个新的应用目标之后(略有变化):

    应用目标 新应用(新品牌) 单元测试目标(宿主应用 >> 1.) UI 测试目标(目标应用 >> 1.)

我意识到单元和 UI 测试具有特定的目标应用程序。对于新应用程序,90% 的测试将是相同的。有没有办法将测试目标设置为运行两次,每个应用程序/品牌运行一次? (也许使用外部工具?)

【问题讨论】:

尝试进入您的方案设置,在测试部分下。也许您可以“检查”普通测试。但我从未尝试过 @bobby 我已经试过了.. 没用 这两个应用的捆绑 ID 是否不同? @Oletha 是的,他们这样做了 @Daniel,你找到解决方案了吗? 【参考方案1】:

一段时间后我发现我需要的是不同的目标。

这些是我现在的目标:

    应用目标 新应用(新品牌) 单元测试目标(宿主应用 >> 1.) UI 测试目标(目标应用 >> 1.) 单元测试目标(宿主应用 >> 2.) UI 测试目标(目标应用 >> 2.)

【讨论】:

那么使用这种方法您正在为两个应用目标编写测试? 听到这个消息很难过。这有点过度编码以支持两个甚至更多的测试目标。 并非如此,因为您只需要创建额外的目标,您可以共享代码。因此,例如 3 和 5 可以使用相同的测试类/文件【参考方案2】:

要针对不同的应用两次运行测试(或任何测试子集),您将需要两个方案,并且需要分别调用它们。

如果您希望这是一个单操作流程,请为每个目标应用创建一个方案,并选择要运行的正确测试,然后创建一个 shell 脚本,一个接一个地为这两个方案运行测试。然后,您只需运行脚本即可针对这两个应用运行测试。

要简化xcodebuild 命令,您可以使用Scan,而要自动化该过程,您可以使用Jenkins 定期运行您的脚本,或者在触发器上运行您的脚本,例如将新提交推送到您的存储库。

Scan 可以很好地与多种方案配合使用 - 将它们都添加到 Scanfile 中,然后让您的 shell 脚本按顺序运行它们。在红宝石中:

`scan --scheme "SchemeOne"`
`scan --scheme "SchemeTwo"`

【讨论】:

问题是,我无法在方案中选择测试目标的目标应用 能否在方案编辑器的运行菜单中选择可执行文件(而不是测试)?我可以从我的 ios 和 WatchOS 应用中进行选择。 可以,但不影响测试目标【参考方案3】:

正如Daniel 所说,您可以在 2 个不同的测试目标中使用相同的文件。我现在正在尝试这个,我会让你知道它是怎么回事。我在下面的教程中找到了信息:

Tutorial on using same files from 2 test targets

【讨论】:

以上是关于用相同的测试测试两个目标的主要内容,如果未能解决你的问题,请参考以下文章

从测试目标看不到 Swift 类

使用一个'它'测试两个期望相同的功能

软件测试复习----测试用例的编写

软件测试复习----测试用例的编写

软件测试复习----测试用例的编写

软件测试复习----测试用例的编写