我正在尝试以编程方式运行nunit测试,我已经成功地做到了这一点。但是我也想在需要的时候停止测试,但是runner.stoprun并没有停止测试运行。有没有人能帮个忙。
以下是运行测试的代码片段:
IDictionary<String, Object> options = new Dictionary<String, Object>();
options.Add(FrameworkPackageSettings.DefaultTestNamePattern, testName);
DefaultTestAssemblyBuilder builder = new NUnit.Framework.Api.DefaultTestAssemblyBuilder();
ITest test=builder.Build(asmName, options);
runner = new NUnit.Framework.Api.NUnitTestAssemblyRunner(builder);
runner.Load(asmName, options);
runner.Run(null, TestFilter.Empty);通过下面的代码,我尝试在另一个线程中停止测试:
if (runner.IsTestRunning)
runner.StopRun(true);提前谢谢。
发布于 2018-02-04 05:37:07
不知道你说的不同的帖子是什么意思。与测试线程不同?不同于调用Run的线程?
在任何情况下,您调用的Run方法都是同步的,因此测试将使该线程保持忙碌,直到它返回为止。
由于您使用的是NUnit内部方法(即,即使可见,也不是为公共使用而设计的),因此您可能应该使用NUnit的调试版本,以便可以单步执行对StopRun的调用。
本质上,有两种可能性: 1.为运行测试而创建的设置是错误的。2.其中一个测试是拒绝终止的。
首先,我会使用一个非常简单的测试来排除第二个项目。
https://stackoverflow.com/questions/48594097
复制相似问题