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

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

【问题讨论】:

    标签: unit-testing ocunit


    【解决方案1】:

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

    这里是一个例子:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2020-06-23
        • 1970-01-01
        • 2016-08-15
        • 1970-01-01
        • 2011-10-14
        • 1970-01-01
        • 1970-01-01
        • 2013-01-05
        • 2012-01-13
        相关资源
        最近更新 更多