【发布时间】:2020-05-09 13:34:52
【问题描述】:
我正在 Visual Studio Enterprise 2019 版本 16.3.9/测试资源管理器窗口中执行我的测试。我的架构是 Intel(R) Core(TM) i7-7600 CPU @ 2.80Ghz(4 个 CPU),~2.9Ghz
下面是我的伪 Selenium C# 代码:
[TestFixture]
internal class TestClass{
[OneTimeSetUp]
public void OneTimeSetUp()
{
initializeExtentReport()
}
[SetUp]
public void Setup()
{
initializeChromebBrowser();
}
[Test]
public void NavigatoToGmail()
{
bool isGmailAccessible = GoToUrl("https://www.google.com/");
Assert.True(isGmailAccessible);
}
[Test]
public void NavigatoToMicrosoft()
{
bool isMicrosoftAccessible = GoToUrl("https://www.microsoft.com/");
Assert.True(isMicrosoftAccessible);
}
[Test]
public void NavigatoToYahoo()
{
bool isYahooAccessible = GoToUrl("https://www.yahoo.com/");
Assert.True(isYahooAccessible);
}
[TearDown]
public void TearDOwn()
{
CloseBrowser();
}
[OneTimeTearDown]
public void OneTimeTearDown()
{
FinishExtentReport();
}
所以这是我已经尝试过的,但没有成功
将
[Parallelizable(ParallelScope.Children)]添加到类,并将[Parallelizable(ParallelScope.Self)]属性添加到每个测试方法。结果 - 3 个浏览器实例在没有其他操作的情况下打开。没有 URL 导航,什么都没有。在类中添加
[Parallelizable(ParallelScope.All)],在每个测试方法中添加[Parallelizable(ParallelScope.Self)]。结果 - 打开了 3 个浏览器实例。仅执行最后一个测试 (NavigatoToYahoo) 并提供结果。前 2 - 没有其他操作发生并且浏览器窗口没有关闭,这意味着 TearDown() 方法没有执行。只需将
[Parallelizable(ParallelScope.Self)]添加到每个测试方法。结果 - 3 个浏览器实例在没有其他操作的情况下打开。没有 URL 导航,什么都没有。将
[Parallelizable(ParallelScope.Self)]添加到类,并将[Parallelizable(ParallelScope.Self)]属性添加到每个测试方法。结果 - 打开了 3 个浏览器实例。第二个测试(NavigateToMicrosoft)被执行,剩下的 2 个 - 没有其他操作,没有 URL 导航,什么都没有。将
[Parallelizable(ParallelScope.Self)]添加到类,并将[Parallelizable(ParallelScope.All)]属性添加到每个测试方法。结果 - 收到错误消息May not specify ParallelScope.Children on a non-parameterized test method- 老实说不知道为什么
我已经阅读了https://github.com/nunit/docs/wiki/Parallelizable-Attribute 此处的文档,但我觉得没有实际的方法可以使用 NUnit 框架并行执行单元测试。
我只是想彼此独立地并行运行这 3 个测试(在我的实际场景中大约有 100 个)。
【问题讨论】:
标签: c# unit-testing parallel-processing nunit