コンソールの出力の最後にテスト成果物のパスを書きたいと思います。それは便利だろう。私はちょうど興味があります。iOSユニットテスト:テストの完了を処理する方法は?
XCTestはアプリを何とか終了し、アプリケーションデリゲートはライフサイクルコールバックを受け取らないと思われます。プログラムはmain.mからmain関数の前に終了します。
コンソールの出力の最後にテスト成果物のパスを書きたいと思います。それは便利だろう。私はちょうど興味があります。iOSユニットテスト:テストの完了を処理する方法は?
XCTestはアプリを何とか終了し、アプリケーションデリゲートはライフサイクルコールバックを受け取らないと思われます。プログラムはmain.mからmain関数の前に終了します。
Test Execution and Observation特にtestBundleDidFinishをご覧ください。
XCTestObservation
を採用するオブジェクトを定義した場合は、テストスイートの実行中の任意の時点でXCTestObservationCenter.shared
インスタンスに追加して、バンドル全体が終了したときにコールを受信できます。
ジョナが助けてくれました。また、他の人のためにここにコードを配置したいと思います。
テストの前に観測を開始するには、適切な方法があります。 テストバンドルのInfo.plistにはNSPrincipalClass
キーがあります。そこにあなたの "プリンシパルクラス"の名前を入れてください(詳細はGoogleにあります)。私の場合はPrincipalClass
です。テストバンドルがロードされると、プリンシパルクラスでinit
が呼び出されます。ここに私のPrincipalClass
です:
@objc(PrincipalClass)
final class PrincipalClass: NSObject {
override init() {
TestObservationEntryPoint.instance.startObservation()
}
}
私はAllure2とクールな報告システムを作ることができました。私がこの質問をしたときの報告は私が望んでいたものではありませんが、答えを見つけたので可能でした。これは、XCTestでのテスト観測の良いアプリケーションです。