如何在后台运行测试时让NCrunch停止启动DiffReporter,但在手动运行测试时轻松获取DiffReport?
我一直试图让它工作一段时间,但我尝试过的组合都没有给我我想要的结果。我目前正在将[UseReporter(typeof(DiffReporter))]
属性注释掉。当测试开始失败时,我会回来并取消注释,直到我解决问题,然后将其评论回来,但对于具有多个[TestCase]
的方法来说,这尤其麻烦。从我在ApprovalTests博客上看到的内容看来,这似乎是可能的。
我的差异软件是Beyond Compare,我的代码目前看起来像这样:
TestProject / AssemblyInfo.cs中
[assembly: UseReporter(typeof(NCrunchReporter))]
TestProject / ClassTests.cs
public class ClassTests
{
[Test]
//[UseReporter(typeof(DiffReporter))]
[TestCase(1, 1)]
[TestCase(1, 2)]
[TestCase(2, 1)]
[TestCase(3, 1)]
public void TestCase(int errorNumber, int )
{
using (ApprovalResults.ForScenario(errorNumber, testCaseSubtestNumber))
{
var results = DoSomething();
Approvals.Verify(results);
}
}
}
更新
我正在使用以下NuGet包:
- ApprovalTests v3.0.11
- ApprovalUtilities v3.0.11
- NUnit v3.2.1
答案 0 :(得分:1)
它应该是默认行为。你想要的实际代码是
/* @var $adapter \Zend\Db\Adapter\Adapter */
$adapter = $serviceManager->get('Zend\Db\Adapter\Adapter');
$tableGateway = new TableGateway('mytablename', $adapter);
return new MySessionSaveHandler($tableGateway, new DbTableGatewayOptions());
但是NcrunchReporter是DefaultFrontLoadedReporter的一部分。 这些记者会在您使用的任何记者面前走,如果发现情况就会阻止。
也许NCrunch已经改变了。 您可以尝试通过NCrunch运行并报告结果
[assembly: FrontLoadedReporter(typeof(NCrunchReporter))]
应该是这样,如果不是NCrunch已经改变,我们将需要相应地更新记者。