我正在尝试以编程方式运行我已成功完成的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);
提前致谢。
答案 0 :(得分:0)
不确定您对其他主题的意思。与测试线程不同?与调用Run?
的线程不同在任何情况下,您调用的Run方法都是同步的,因此测试将保持该线程忙,直到它返回。
由于您正在使用NUnit内部方法(即,即使可见,也不是为公共消费而设计),您可能应该使用NUnit的调试版本,以便您可以进入对StopRun的调用。
基本上,有两种可能性: 1.为运行测试而创建的设置是错误的。 其中一项测试是拒绝终止。
我首先通过一个非常简单的测试来排除第二项。