2017-12-13 11 views
1

私はNUnitテストプロジェクトで作業しており、テストケースを並行して実行しようとしています。NUnitテストケースをテスト固定レベルより下に縮める

私がこれまで行ってきたことは、テストフィックスを並行して実行することだけでした。しかし、それだけでは不十分で、何百もの修正を作成するのは退屈な作業であり、維持するのは難しい。

すべてのケースを並行して実行したい場合、1つのテストケースに対して1つのフィクスチャを作成するよりも良い方法はありますか?

AssemplyInfo.cs

​​

Test.cs

[TestFixture] 
[Parallelizable(ParallelScope.Fixtures)] 
+1

もちろん、アプリが同時テストと互換性があることを確認する必要があります。あなたが嘲笑していない限り(とにかくテストの目的を破る)、AUTは一般的にテストが既知の状態になることを期待するDBを必要とします。並行テストではこれが壊れます – MickyD

+0

これは本当です。私はDBとAPIを打つときいくつかの問題に直面したが、すべて解決された。 –

+0

よろしくお願いします! :) – MickyD

答えて

1

あなたが並行して、すべての備品を実行したい場合は、あなただけのアセンブリレベルの属性を必要としています。

[assembly: Parallelizable(ParallelScope.All)] 

あなたはLevelOfParallelismを追加することができますが、NUnitのは、あなたが持っているプロセッサーの数に基づいて値を設定できるようにすることをお勧めします。

グローバル動作と異なるものを使用したい場合は、テストクラスにParallelizableを設定します。

NUnit 3.8より前のバージョンでは、テストはFixtureレベルまでParallelで実行されました。 Parallelでのテストメソッドの実行はNUnit 3.8で追加されましたが、3.8の変更によって導入されたいくつかの並列化エラーを避けるために、私は直接3.9に移行することをお勧めします。

+0

ありがとう、ロブ、私はそれがfixuresよりも低いテストケースのレベルで実行したいと思います。 –

+0

NUnit 3.9では、アセンブリレベルの属性はすべてをメソッドレベルまで並列に実行する必要があります。あなたはこれを見ていませんか? Console.WriteLine()のようなものはバッファリングされているので、並列の本当の表示ではありません。 –

+0

私はNUnitを更新して再試行し、あなたに知らせます。ありがとう。 –

関連する問題