Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用NUnit 3(C#)从代码运行特定的NUnit测试_C#_Selenium Webdriver_Nunit_Nunit 3.0 - Fatal编程技术网

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

如何使用NUnit 3(C#)从代码运行特定的NUnit测试,c#,selenium-webdriver,nunit,nunit-3.0,C#,Selenium Webdriver,Nunit,Nunit 3.0,我试图以编程方式第二次运行存在于同一项目中的测试 因为如果测试设置失败,那么测试和设置将再次运行 我使用SeleniumWebDriver来运行测试,很多测试都有SetUppre操作。例如:一个预操作是购买一张票,然后运行一组测试来检查是否一切正常 通常我的设置预操作失败(发生错误),然后没有运行测试。我想给他们第二个改变,就是再次运行它们 一个可能对我有效的解决方案是,但它需要NUnit3 NUnit 3中没有NUnit.Core包,因此解决方案显示了很多错误。如果我的测试方法放在同一个项目中

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

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

我使用SeleniumWebDriver来运行测试,很多测试都有
SetUp
pre操作。例如:一个预操作是购买一张票,然后运行一组测试来检查是否一切正常

通常我的设置预操作失败(发生错误),然后没有运行测试。我想给他们第二个改变,就是再次运行它们

一个可能对我有效的解决方案是,但它需要NUnit3

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


如果将测试方法放在同一个项目中,您对如何从代码运行测试方法有何想法?

缺少的方法和程序集是NUnit 2.6.4内部实现的一部分,从未打算用于公共用途。您所指的解决方案在工作时只是“很棒”,但由于它使用内部类和方法,因此无法保证

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

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。

您是否尝试过该方法?(请特别注意第三点-您需要创建当前抛出断言异常的内容)