2016-09-08 16 views
1

テストを実行するのにNUnitとTeamCityを使用します。SetUpでNUnitテストが失敗しましたTeamCityに表示されません

いくつかのテスト(すべてではない)には、テストクラスのコンストラクタで行われたアクションがあります。私はこれらの行動を検証のために「前actioins」と呼びます。ですから、1つのテストクラスで私は5つのバリデーション(テスト)と一連のプレアクションを持っています。

私はを実行する前行動の段階で失敗した場合テストスイート場合は、その後チームシティーは、すべての(いない状況の下で)その報告書では、これらのテストを表示しないことに気づきました。私はのようなエラーが表示ビルドログで

:私はチームシティーから期待する何

SetUp Error : {test_name} + error code. 

は無視されたとして、少なくともこれらのテストを報告することです。

TeamCityを使用して実行しているのテストと、Visual StudioでVisual Studioを使用して実行しているテストを比較するには、同じ失敗条件の結果がすべてのテストスイートで失敗します。エラーはすべてのテストで同じになります。

だから私が望むのはなので、私のテストの一部が実行されなかったかどうかを知るためには、TeamCityにテスト結果が含まれていないと問題がわからないからです!

構成: TeamCity 10.0、NUnit 3.0。

コマンドラインのparams:--result=TestResult.xml --workers=4 --teamcity

更新:ログに実行するテストの結果は次のようになります。

[13:03:48][Step 1/1] Test Run Summary 
[13:03:48][Step 1/1]  Overall result: Failed 
[13:03:48][Step 1/1] Tests run: 82, Passed: 0, Errors: 82, Failures: 0, Inconclusive: 0 
[13:03:48][Step 1/1]  Not run: 0, Invalid: 0, Ignored: 0, Explicit: 0, Skipped: 0 
[13:03:48][Step 1/1] Start time: 2016-09-08 09:56:33Z 
[13:03:48][Step 1/1]  End time: 2016-09-08 10:03:48Z 
[13:03:48][Step 1/1]  Duration: 434,948 seconds 

ので、NUnitのは、さえとして失敗しましたが、 "erros" としてではないようなテストをマーク。それでも私はそれらをテスト結果にしたい。

答えて

1

コンストラクタで例外をスローしているため、テストはエラーです。テストフィクスチャは構築できないので、NUnitに関する限りテストは実際には実行されていません。例外を引き起こすNUnitアサーションの失敗であるという事実は、オブジェクトの構築のコンテキストでは無関係です。

NUnitはオブジェクトの作成時期と頻度について保証していないため、コンストラクタを非常にシンプルに保つように常にアドバイスしてきました。コンストラクタでアサーションを使用することは、そのプリンシパルの極端な違反です。実際、以前は誰も見たことがありませんでした。あなたはいくつかのことは、あなたのテストがを構築とは対照的に、実行あるたびに起こるしたい場合

OneTimeSetUp属性があります。 NUnitはそのメソッドがいつ実行されるかを保証します。 :-)

これは、TCがエラーを認識していない理由を示していますが、コンストラクタが失敗するとテストが実際に実行されることはないと私は推測しています。 NUnit自体は、テストをエラーとして報告することでそれを補うが、TCは必ずしも同じことをするわけではない。

関連する問題