1

TestContext.CurrentContextNUnit 2.6.2を使用しようとしていますが、常に null です。

私が望むのは、テストの結果を出力することですが、次のコードを実行すると、常にメソッドで a が取得NullReferenceExceptionされTearDownます。Test および Result 内のすべてのプロパティが例外をスローしています。

[TestFixture]
public class UtilitiesTests
{
  [TearDown]
  public void TearDown()
  {
    //using console here just for sake of simplicity. 
    Console.WriteLine(String.Format("{0}: {1}", TestContext.CurrentContext.Test.FullName, TestContext.CurrentContext.Result.Status));
  }

  [Test]
  public void CleanFileName()
  {
    var cleanName = Utilities.CleanFileName("my &file%123$99\\|/?\"*:<>.jpg");
    Assert.AreEqual("my-efile12399---.jpg", cleanName);
  }
}

私が間違っている可能性がありますか?

4

1 に答える 1

1

この議論によると、正しいバージョンの NUnit テストランナーで実行する必要があります。バージョンは NUnit 2.6.2 である必要があります。

正しいバージョンの nunit-console でテストを実行してみてください。

更新: VS2012 で新しいプロジェクトをセットアップし、NuGet を使用して NUnit 2.6.2 と NUnit.Runners 2.6.2 を追加しました。Resharper Testrunner を使用すると、エラーは発生しませんでしたが、コンソール出力も得られなかったので、から実行NUnit.exeしました<project-folder>\packages\NUnit.Runners.2.6.2\tools\

これは私が受け取った出力です:

ここに画像の説明を入力

結果は問題ないようです。上記のサンプルコードを実行しました。

ただし、実行できるようにコードを変更する必要がありました。

using System;
using NUnit.Framework;

[TestFixture]
public class UtilitiesTests
{
    [TearDown]
    public void TearDown()
    {
        //using console here just for sake of simplicity. 
        Console.WriteLine(String.Format("{0}: {1}", TestContext.CurrentContext.Test.FullName, TestContext.CurrentContext.Result.Status));
    }

    [Test]
    public void CleanFileName()
    {
        var cleanName = "my &file%123$99\\|/?\"*:<>.jpg";
        Assert.AreEqual("my &file%123$99\\|/?\"*:<>.jpg", cleanName);
    }
}

再度 NUnit.exe を使用してテストを実行する必要がありますが、その前に、[ヘルプ] -> [NUnit について] で正しいバージョンを使用していることを確認してください ...

私は次のようになります。

ここに画像の説明を入力

于 2013-09-03T19:26:14.687 に答える