无法使用runner.storp.run方法停止测试

时间:2018-02-03 04:59:38

标签: nunit

我正在尝试以编程方式运行我已成功完成的nunit测试。但是我还想在我需要的时候停止测试,但是跑步者.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);

提前致谢。

1 个答案:

答案 0 :(得分:0)

不确定您对其他主题的意思。与测试线程不同?与调用Run?

的线程不同

在任何情况下,您调用的Run方法都是同步的,因此测试将保持该线程忙,直到它返回。

由于您正在使用NUnit内部方法(即,即使可见,也不是为公共消费而设计),您可能应该使用NUnit的调试版本,以便您可以进入对StopRun的调用。

基本上,有两种可能性: 1.为运行测试而创建的设置是错误的。 其中一项测试是拒绝终止。

我首先通过一个非常简单的测试来排除第二项。