[英]how do I prevent resharper 8 from running parallel tests with nunit?
[英]NUnit - prevent 2 specific classes from running in parallel
我有一個包含許多測試和許多測試類的測試項目。 它們中的大多數都可以毫無問題地並行運行,但是有 2 個特定的測試類,它們的測試訪問某個文件,因此不能並行運行。
我想如果我將[Parallelizable(ParallelScope.All)]
放在所有其他類上並將[Parallelizable(ParallelScope.None)]
放在這兩個類上,那么它應該是安全的,但是 AFAIU 這也意味着這兩個類不會與任何其他 class 並行運行,這不是我想要的,因為它不是最有效的解決方案。
有沒有其他更有效的方法來實現這一目標?
需要考慮的幾點:
[Parallelizable]
或[NonParallelizable]
可以在測試的多個級別上指定,較低級別的規范在一定程度上覆蓋較高的規范。對於您的情況,您可以使用非並行方法創建並行 class :此 class 中的方法按順序運行,通常在運行 class 一次性設置的同一線程上,但實際上可能與其他不相關的方法並行運行其他班級。 所以你的 class 可以是:
[Parallelizable(ParallelScope.All)]
public class MyClass1
{
[NonParallelizable]
[Test]
public void Test1()
{
}
[NonParallelizable]
[Test]
public void Test2()
{
}
}
[Parallelizable(ParallelScope.All)]
public class MyClass2 //Another class in same Assembly
{
//methods within this class will run in parallel with other
//class methods within same assembly except method Test1 and Test2 of MyClass1
}
希望這可以幫助。 詳情在這里
NUnit 中沒有內置工具來執行此操作。
您可以在每個類的 OneTimeSetUp 中檢查文件的可用性,阻塞直到文件可用。 如果這些類同時入隊,這將占用一個線程,但您可以通過增加運行的並行級別來實現這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.