XCTest在隔离时传递,在与其他测试一起运行时失败

时间:2015-03-26 22:18:48

标签: ios iphone unit-testing xctest

当我运行单个XCTest类时,所有测试都会成功。

但是,当我与其他XCTest一起运行时,类中的某些测试会失败。

setUp和tearDown方法正确实现如下:

- (void)setUp {
  [super setUp];
  ...
}

- (void)tearDown {
  ...
  [super tearDown];
}

我在应该在测试中执行的代码中设置断点。当我单独运行测试时,达到了断点;当我用其他测试运行它时,没有达到断点。我想也许XCTest有一些缓存行为?如果是这样,如何将其关闭?

有谁知道为什么会这样?

非常感谢!

2 个答案:

答案 0 :(得分:2)

我看到了同样的行为,我的问题是因为我在测试的方法中有一个静态变量,它在测试中保持其值。

答案 1 :(得分:0)

当我同时运行所有测试时,我遇到了类似的问题。我可以通过将Assertion放入Dispatch Delay中来解决它,

 DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
       XCTAssert(self.response != nil)
    }

我希望以上解决方案也对您有用。