c# - 如何使用 NUnit 3 (C#) 从代码运行特定的 NUnit 测试

标签 c# selenium-webdriver nunit nunit-3.0

我正在尝试以编程方式第二次运行存在于同一项目中的测试。

因为如果测试设置失败,那么测试和设置将再次运行。

我使用 Selenium Webdriver 来运行测试,然后很多测试都有 SetUp 预操作。例如:预先行动是买票,然后运行一组测试以检查是否一切正常。

我的 SetUp 预操作经常失败(发生错误),然后没有运行测试。我想给他们第二次改变,即再次运行它们。

可能对我有用的一个很好的解决方案是 this SO question ,但它需要 NUnit 3。

NUnit 3 中没有NUnit.Core 包,因此解决方案显示了很多错误。我也不确定如果我的测试方法放在同一个项目中我是否必须使用它(所以也许我不需要加载程序集)。

如果此方法放在同一个项目中,关于如何从代码运行测试方法有什么想法吗?

最佳答案

缺少的方法和程序集是 NUnit 2.6.4 内部实现的一部分,从未打算供公众使用。您指出的解决方案只是在工作时“很棒”,但因为它使用内部类和方法,所以没有任何保证。

对于 NUnit 3.0,您很幸运,因为现在有一个公共(public) API 可用于运行测试。通过使用公共(public)/已发布的 API,您可以保证我们将在未来继续使用它。

API 的文档现在位于 Test-Engine-API .这是一个简单的使用示例...

ITestEngine engine = TestEngineActivator.CreateInstance();
TestPackage package = new TestPackage("path/to/assembly");
ITestRunner runner = engine.GetRunner(package);
XmlNode result = runner.Run(this, TestFilter.Empty);

您应该引用 nunit.engine.api 程序集(而不是 nunit.engine)才能使用它。假定进行这些调用的类实现了 ITestEventListener。

关于c# - 如何使用 NUnit 3 (C#) 从代码运行特定的 NUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35578848/

相关文章:

java - 如何点击 Selenium 中网页元素的特定位置?

javascript - Webdriver:如何使用js删除元素

c# - 这是使用 FluentAssertions 比较可空类型与其基础类型时的错误吗?

android - Xamarin.UITests Android 设备未检测到或不工作

c# - WPF MVVM 更新源但不更新 GUI

c# - SQL 查询错误 - "Column cannot be null"

c# - 如何在 Ubuntu 中运行 Web 应用程序 C#

c# - 为什么我的任务持续 10 秒

python - ElementNotInteractableException : Message: element not interactable error sending text in search field using Selenium Python

c# - 使用 selenium Web 驱动程序在 Visual Studio 中测试本地项目