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.name
或 testRun.test.name
会给你这个:-[AppUITests testLoginFlow]
【讨论】:
以上是关于setUp/tearDown 方法中的测试名称的主要内容,如果未能解决你的问题,请参考以下文章