2017-07-10 11 views
1

私はXCode 8とXCTestCaseを使用しています。私はすべてのテストの前に一度だけ実行されるクラスのsetUp関数を作成し、各テストケースの前にもう1つのsetUpを実行しました。XCTestCaseがsetUpクラスメソッドでアプリケーションを起動しない

すべてのテストケースの前にアプリケーションを一度起動します。クラスsetUpでの起動を使用すると、決して実行されません。各テストの前に実行されたsetUpでの起動を使用すると、テストが開始されます。

enter image description here

それは印刷されます。TEST METHODでセットアップ

でクラスのセットアップで

ENDクラスSETUP

をしかし、アプリケーションが起動されることは決してありません。 2番目のsetUpでアプリケーションを起動する行のコメントを外すと、起動されます。

テストクラスのすべてのテストの前にアプリケーションを一度起動させるにはどうすればよいですか?

答えて

1

私は同じ問題に直面し、それを次のよう

class MyTestCase: XCTestCase { 

    static var app: XCUIApplication? 

    override func setUp() { 
     super.setUp() 

     if MyTestCase.app == nil { 
      MyTestCase.app = XCUIApplication() 
      MyTestCase.app!.launch() 
     } 
    } 

    // Tests... 
} 

を解決これが唯一のsetUpメソッドが呼び出された最初の時間でアプリケーションを起動します。

+1

ありがとうございます!この回避策は私のために働く。なぜそれがアップルが全体的な設定を提供するクラス機能で動作しないのか不思議です。しかし、これまでに動作します!どうもありがとう! – rfodge

関連する問題