我正在尝试在并行模式下运行我的测试,但它是按顺序运行而不是并行运行。我在这里找到了一个问题链接,但相同(尼尔和查理,两者)提供的解决方案也不适用于我。
这是我的基类:-
[TestFixtureSource(typeof(TestDataProvider), nameof(TestDataProvider.BrowsersToRunWith))]
[TestFixture]
public class CrossBrowser
{
public IWebDriver driver;
public string Browsername { get; }
public CrossBrowser(string browserName)
{
Browsername = browserName;
}
[SetUp]
public void LaunchBrowser()
{
if (Browsername.ToLower().Contains("chrome"))
{
driver = new ChromeDriver();
}
else
{
driver = new FirefoxDriver();
}
}
TestDataProvider 类:-
class TestDataProvider
{
internal static IEnumerable BrowsersToRunWith
{
get
{
String[] browser = { "Chrome", "FireFox" };
foreach (string b in browser)
{
yield return b;
}
}
}
}
测试类1:-
[Parallelizable(ParallelScope.Self)
public class UT1 : CrossBrowser
{
public UT1(String browserName) : base(browserName)
{
Console.WriteLine("Browser is " + browserName);
}
[Test]
public void OpenGoogle()
{
driver.Url = "http://google.com";
driver.Quit();
}
}
测试类2:-
[Parallelizable(ParallelScope.Self)]
public class UT2 : CrossBrowser
{
public UT2(String browserName) : base(browserName)
{
Console.WriteLine("Browser is " + browserName);
}
[Test]
public void OpenGoogle()
{
driver.Url = "http://google.com";
driver.Quit();
}
}
测试资源管理器:-
当我运行所有测试时,它是一个接一个地运行,而不是在并行模式下运行。我错过了什么吗?请建议。谢谢