setUp/tearDown 方法中的测试名称

Posted

技术标签:

【中文标题】setUp/tearDown 方法中的测试名称【英文标题】:Test name in the setUp/tearDown methods 【发布时间】:2013-09-09 12:21:52 【问题描述】:

每次测试都会调用 SetUp 和 tearDown 方法。是否可以在 setUp 和 tearDown 方法中知道当前(正在运行的)测试名称?我需要根据当前正在运行的测试做一些额外的工作。

【问题讨论】:

【参考方案1】:

您可以在SenTestCase 子类中使用selector 方法来获取将要执行的测试方法的SEL(在setUp)/已执行(tearDown)。然后您可以使用NSStringFromSelector 将 SEL 转换为字符串。

这里是一个例子:

NSString *testToExecute = NSStringFromSelector([self selector]);

但是,我会重新考虑您编写测试的方式。我不喜欢根据要运行的测试在 setUp 中执行条件代码的想法...... 为了解决这个问题,您最好将该条件代码提取到一个方法中,并从您想要的所有测试方法中调用该方法。或者你甚至可以为这些测试用例创建一个单独的测试类,在它的 setUp/tearDown 中为它的所有测试方法做额外的工作。

【讨论】:

【参考方案2】:

在 Swift 中:self.nametestRun.test.name 会给你这个:-[AppUITests testLoginFlow]

【讨论】:

以上是关于setUp/tearDown 方法中的测试名称的主要内容,如果未能解决你的问题,请参考以下文章

Python测试框架pytest(03)setup和teardown

pytest4-测试用例setup和teardown

pytest4-测试用例setup和teardown

Pytest测试用例之setup与teardown方法

Pytest测试用例之setup与teardown方法

Rails 测试有 setup_class/teardown_class 吗?