47

これらのメソッドを TestBase クラスに追加しました:

[ClassInitialize]
public static void InitializBeforeAllTests()
{
}

しかし、デバッグで単体テストを実行するとTest1():

[TestClass]
public class TestMapping : TestBase
{
    [TestMethod]
    public void Test1()
    {
    }

TestBase.InitializBeforeAllTests()メソッドが呼び出されることはありません。なんで?

4

6 に答える 6

16

メソッドで ClassInitialize 属性を宣言する場合、メソッドは static、public、voidである必要があり、型 TestContext の単一パラメーターを取る必要があります

同じ単体テストに AssemblyInitialize 属性を持つ他のメソッドもある場合、テストは実行されますが、すべてのテスト メソッドがスキップされ、AssemblyCleanup に直接進むか、単に終了します。

MSDN の ClassInitialize 属性の例を試してください。

于 2014-05-05T07:45:12.090 に答える
9

何らかの理由で、単体テスト フレームワークの UnitTestExecuter では、テスト クラスごとに 1 つの ClassInitialize メソッドと 1 つの ClassCleanup メソッドしか定義できません...派生テスト クラスとベース テスト クラスの両方で呼び出される TestInitialize メソッドと TestCleanup メソッドとは異なります...

于 2011-12-29T18:34:47.673 に答える