すべてのテストを実行する前にコードを一度実行することは可能ですか? 質問する

すべてのテストを実行する前にコードを一度実行することは可能ですか? 質問する

基本的に、一連のテスト実行を開始する前に、MSTest に少しコードを実行するように指示したいと思います。基本的に、私がやりたいことは、 にいくつかのコードを挿入するのと同じことですMain()

これを実行する理由は、統合テストの実行中に log4net を使用してログを記録したいからです。テストlog4net.Config.XmlConfiguratorアセンブリで読み取るまでに既に が呼び出されているため、アセンブリ属性を使用することはできませんLoggerManager。ドキュメントでは、コード エントリ ポイントで log4net を明示的に構成することを推奨していますが、テストのどこにそれがあるのか​​わかりません。

TestDriven.NET と MSTest ランナーでテストを実行できる必要があります。

ベストアンサー1

ちなみに、アセンブリの初期化アセンブリ内のすべての単体テストが実行される前にコードを実行する属性:

[TestClass]
public class SetupAssemblyInitializer
{
    [AssemblyInitialize]
    public static void AssemblyInit(TestContext context)
    {
        // Initalization code goes here
    }
}

複数のユニット テスト アセンブリがある場合、複数のアセンブリを網羅するものは何も認識していません。

私の知る限り、これが Main と同等のものに最も近いものです。

-decoratedAssemblyInitializeメソッドしなければならないTestClass少なくとも1つのTestMethod-decoratedメソッドを含む -decoratedクラスである必要があります。そうでない場合はない処刑される!

おすすめ記事