2016-07-15 4 views
0

テストをバックグラウンドで実行しているときにNCrunchでDiffReporterの起動を停止させる方法はありますが、手動でテストを実行すると簡単にDiffReportを取得できますか?NCrunchがApprovalTests DiffReporterを起動しています

私はこれをしばらく動かそうとしてきましたが、私が試した組み合わせのどれも私には私が探している結果を与えていません。私は現在、[UseReporter(typeof(DiffReporter))]属性をコメントアウトしたままにしています。テストが失敗すると、私は問題が解決するまでコメントを取り消してコメントを取り消しますが、これは複数のメソッドがある場合は特に面倒です。[TestCase]私が承認試験のブログで読んできたことから、これが可能でなければならないようです。

私のdiffソフトウェアは向こうが比較され、そして私のコードは、現在、次のようになります。

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

ncruchテストウィンドウでテストケースを右クリックして「選択したテストのみのカバレッジを表示」しましたか? –

答えて

1

これはデフォルトの動作でなければなりません。実際のコードは

[assembly: FrontLoadedReporter(typeof(NCrunchReporter))] 

ですが、NcrunchReporterはDefaultFrontLoadedReporterの一部です。 これらのレポーターは、状況が検出された場合には、使用しているレポーターの前に行き、ブロックします。

おそらくNCrunchが変更されました。 あなたはNCrunchを経由して、これを実行し、その結果

Approvals.SetCaller(); 
Assert.IsTrue(NCrunchReporter.INSTANCE.IsWorkingInThisEnvironment("a.txt")); 

を報告することはないNCrunchが変化した場合であることは、真でなければ、我々はそれに応じて記者を更新する必要があります試みることができます。

+0

'System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。 ApprovalTests.Reporters.NCrunchReporter.IsWorkingInThisEnvironment(String forFile) 'にあります。私はApprovalTests v3.0.11を使用しています – tehDorf

+0

申し訳ありません、これを試してみてください: Approvals.SetCaller(); Assert.IsTrue(NCrunchReporter.INSTANCE.IsWorkingInThisEnvironment( "a.txt")); –

+0

それは例外をクリアしました。ただし、関数は 'false'を返します。したがって、Assertは失敗します。 – tehDorf

関連する問題