2

NUnit (2.6.0) のアドインを次のように定義しました

namespace company.Testing.Attributes
{
    [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
    public class ThenWithSetupAttribute : TestAttribute
    {}
}

namespace company.Testing
{
    [NUnitAddin(Description = "ThenWithSetup", Name = "ThenWithSetup")]
    public class ThenWithSetup : IAddin, EventListener
    {    
        public void RunStarted(string name, int testCount)
        {}

        public void RunFinished(TestResult result)
        {}

        public void RunFinished(Exception exception)
        {}

        public void TestStarted(TestName testName)
        {
            throw new Exception("Hello");
        }

        public void TestFinished(TestResult result)
        {
            throw new Exception("I said hello!");
        }

        public void SuiteStarted(TestName testName)
        {}

        public void SuiteFinished(TestResult result)
        {}

        public void UnhandledException(Exception exception)
        {}

        public void TestOutput(TestOutput testOutput)
        {}

        public bool Install(IExtensionHost host)
        {
            IExtensionPoint listeners = host.GetExtensionPoint("EventListeners");

            if (listeners == null)
                return false;

            listeners.Install(this);
            return true;
        }
    }
}

Visual Studio 2010 と ReSharper 7 を使用して、ReSharper -> オプション -> Nunit -> NUnit アドインの読み込み -> 常に、company.Testing.dll を ..\ReSharper\ に設定したときに、その印象を受けました。 v7.0\Bin\addins フォルダーで、これらのイベント リスナーが起動します (この場合は例外がスローされます)。ただし、これは当てはまりません。TestStarted-eventlistener で失敗するはずのテストが正常に実行されます!?!

別のソリューションで定義された私のテスト(上記の.dllを参照):

[ThenWithSetup]
public void ShouldGetOkResponse()
{
    Console.WriteLine("testing 123");
    Assert.AreEqual(HttpStatusCode.OK, _result.StatusCode);
}

明らかに何かが欠けていますが、何ですか?

ありがとう!

4

1 に答える 1

0

テスト付きのdllにアドイン用のnunitパッケージが含まれている可能性がありますか? 私にとって、このケースは機能しません。パッケージを削除した後、すべての作業が始まりました。

ここで私の答えを見てください: https://stackoverflow.com/a/34154702/908936

于 2015-12-08T11:31:46.537 に答える