Nunit: 特定の基本クラスをテストする方法は?

作成日 2017年07月12日  ·  5コメント  ·  ソース: nunit/nunit

同じアセンブリで継承されたテストを行うクラスがあります。 そのクラスには、基本クラスだけでテストする必要があるテスト関数があります。 継承されたものではなく、一度だけテストを実行したい

どうすればいいですか?

duplicate

全てのコメント5件

ねえ@Thaina! 私たちはこれについて話していました。 https://github.com/nunit/nunit/issues/2309#issuecomment -313936931それはあなたのニーズに合っていますか?

おっと、間違ったボタン。 😛

@ jnm2ええと、そうですからそれほど間違っていません。 しかし、私はそれがネイティブにサポートされるべきだと思います

ご意見をお聞かせいただきありがとうございます。 今のところ、あなたは二人目だと思いますが、十分な数の人が質問してしまうかどうかを再検討します。

@Thaina NUnitが実行するように設計されていないことを実行しようとしているため、変更要求は、NUnitの基本的な動作方法の変更要求です。 それが不可能だと言っているわけではありませんが、それは(1)私たちがそれを行う理由がいくつか必要であり、(2)少なくともNUnitの設計者がこの種の状況が機能するはずだと考えた方法を考慮する必要があることを意味します。

私があなたの言っていることを理解しているなら、あなたはこのように書かれたテストを持っています...

`` `C#
パブリッククラスBaseClass
{{
//多分一般的なセットアップと分解および他のテスト

[Test]
public void SomeTest() { }

}

パブリッククラスDerivedClass:BaseClass
{{
//このクラスは、独自のテストとベースからのSomeTestを実行します
}

`SomeTest` runs on both the base class and the derived class. You want it to run on only the base class. According to the intended design of NUnit, we would expect your base class to be abstract and we would run it only on the __derived__ class. However, you want to run it only on the __base__ class. In order to do that, our standard recipe would be as follows:

```C#
public abstract class BaseClass
{
    // Maybe common setup and teardown and other tests
}

public class DerivedClass1 : BaseClass
{
    // This class runs it's own tests plus SomeTest from base
}

public class DerivedClass2 : BaseClass
{
    [Test]
    public void SomeTest() { }
}

この設計では、基本クラスが直接実行されることはありません。 これは、継承を通じて2つの派生クラスの実行に参加します。 明らかに、これが唯一の方法ではありませんが、NUnitが機能するように設計された方法です。 基本クラスは抽象的であり、テストを直接提供することを目的としていません。 それらは、それらから派生するクラスにのみそれらを供給します。

これは、現在のNUnitの動作の説明です。 このパターンに当てはまることができれば、いつか私たちに物事を変えるように頼むことができても、人生は楽になります。

このページは役に立ちましたか?
0 / 5 - 0 評価