How to let the app know if it's running Unit tests in a pure Swift project?

后端 未结 15 719
借酒劲吻你
借酒劲吻你 2021-01-30 05:08

One annoying thing when running tests in Xcode 6.1 is that the entire app has to run and launch its storyboard and root view controller. In my app this runs some server calls th

15条回答
  •  夕颜
    夕颜 (楼主)
    2021-01-30 05:33

    This is the swift way to do it.

    extension Thread {
      var isRunningXCTest: Bool {
        for key in self.threadDictionary.allKeys {
          guard let keyAsString = key as? String else {
            continue
          }
    
          if keyAsString.split(separator: ".").contains("xctest") {
            return true
          }
        }
        return false
      }
    }
    

    And this is how you use it:

    if Thread.current.isRunningXCTest {
      // test code goes here
    } else {
      // other code goes here
    }
    
    

    Here is the full article: https://medium.com/@theinkedengineer/check-if-app-is-running-unit-tests-the-swift-way-b51fbfd07989

提交回复
热议问题