私のC#
プロジェクト(VisualStudio 2015
、Nunit
)にユニットテストがあります。私は異なるパラメータでさまざまな状況でメソッドをチェックしたい、それを達成するために、私はTestCasesを使用しました。各テストメソッドは非常に遅く動作します。数秒で、私のプロジェクトではTestCasesが大きくなります。並列テストケースを使用した.NETテストフレームワーク
これでテストに数分かかります。私はこれらのテストを並行して、各テストを別々に動かすことで試行しました。 - Nunit
は、TestFixturesを並列実行することを許可します - Nunit Documentation。それは状況をわずかに変えたが、それほど大きくはなかった。私は、TestFixtureレベルではなく、テストケースレベルで並列テストをしたいと思います。私はそれをする方法を知らない。 Nunit
、Xunit
、MBUnit
などのドキュメントを読んだところ、その答えが見つかりませんでした。
私はどのようにしてテストを同時に実行することができますか?どのフレームワークを使用するのですか?
擬似コードで私のテスト例:
public static class GeneralTestCases
{
public static IEnumerable TestStoresCredentials
{
get
{
yield return new TestCaseData(...).SetName("incorrect password");
...
yield return new TestCaseData(...).SetName("incorrect login");
}
}
}
[ TestFixture ]
[ Parallelizable ]
internal class GetProducts : BaseTest
{
[ Test ]
[ TestCaseSource(typeof(GeneralTestCases), "TestCases") ]
public void ReceiveProducts(TestCase case)
{
// ------------ Arrange
var service = CreateService(case.User, case.Key, ...);
// ------------ Act
var serviceResponse = service.GetProducts(case.SpecialType);
// ------------ Assert
...
serviceResponse.Message.Should().NotBeNullOrEmpty();
...
}
}
[ TestFixture ]
[ Parallelizable ]
internal class GetOrders : BaseTest
{
[ Test ]
[ TestCaseSource(typeof(GeneralTestCases), "TestCases") ]
public void ReceiveOrders(TestCase case)
{
// ------------ Arrange
var service = CreateService(case.User, case.Key, ...);
// ------------ Act
var serviceResponse = service.GetOrders(case.SpecialType);
// ------------ Assert
...
serviceResponse.Message.Should().NotBeNullOrEmpty();
...
}
}
アップデート1: 私はnCrunchを考えているが、私はそれが
多分これはhttps://stackoverflow.com/questions/3313163/how-can-i-run-nunit-tests-in-parallel – C1sc0