2017-09-15 6 views
0

コンソールの出力の最後にテスト成果物のパスを書きたいと思います。それは便利だろう。私はちょうど興味があります。iOSユニットテスト:テストの完了を処理する方法は?

XCTestはアプリを何とか終了し、アプリケーションデリゲートはライフサイクルコールバックを受け取らないと思われます。プログラムはmain.mから​​main関数の前に終了します。

答えて

1

Test Execution and Observation特にtestBundleDidFinishをご覧ください。

XCTestObservationを採用するオブジェクトを定義した場合は、テストスイートの実行中の任意の時点でXCTestObservationCenter.sharedインスタンスに追加して、バンドル全体が終了したときにコールを受信できます。

0

ジョナが助けてくれました。また、他の人のためにここにコードを配置したいと思います。

テストの前に観測を開始するには、適切な方法があります。 テストバンドルのInfo.plistにはNSPrincipalClassキーがあります。そこにあなたの "プリンシパルクラス"の名前を入れてください(詳細はGoogleにあります)。私の場合はPrincipalClassです。テストバンドルがロードされると、プリンシパルクラスでinitが呼び出されます。ここに私のPrincipalClassです:

@objc(PrincipalClass) 
final class PrincipalClass: NSObject { 
    override init() { 
     TestObservationEntryPoint.instance.startObservation() 
    } 
} 

私はAllure2とクールな報告システムを作ることができました。私がこの質問をしたときの報告は私が望んでいたものではありませんが、答えを見つけたので可能でした。これは、XCTestでのテスト観測の良いアプリケーションです。

関連する問題