Global test initialize method for MSTest

后端 未结 3 1913
無奈伤痛
無奈伤痛 2020-12-24 00:45

Quick question, how do I create a method that is run only once before all tests in the solution are run.

相关标签:
3条回答
  • Create a public static method, decorated with the AssemblyInitialize attribute. The test framework will call this Setup method once per test run:

    [AssemblyInitialize()]
    public static void MyTestInitialize(TestContext testContext)
    {}
    

    For TearDown its:

    [AssemblyCleanup]
    public static void TearDown() 
    {}
    

    EDIT:

    Another very important detail: the class to which this method belongs must be decorated with [TestClass]. Otherwise, the initialization method will not run.

    0 讨论(0)
  • Just to underscore what @driis and @Malice said in the accepted answer, here's what your global test initializer class should look like:

    namespace ThanksDriis
    {
        [TestClass]
        class GlobalTestInitializer
        {
            [AssemblyInitialize()]
            public static void MyTestInitialize(TestContext testContext)
            {
                // The test framework will call this method once -BEFORE- each test run.
            }
    
            [AssemblyCleanup]
            public static void TearDown() 
            {
                // The test framework will call this method once -AFTER- each test run.
            }
        }
    }
    
    0 讨论(0)
  • 2020-12-24 01:14

    Sorry for the crappy formatting...

            /// <summary>
            /// Use TestInitialize to run code before running each test
            /// Runs before every test executes
            /// </summary>
            [TestInitialize()]
            public void TestInitialize()
            {
               ...
               ...
            }
    
    
            /// <summary>
            /// Use TestCleanup to run code after each test has run
            /// Runs after every test executes
            /// </summary>
            [TestCleanup()]
            public void TestCleanup()
            {
               ...
               ...
            }
    
    0 讨论(0)
提交回复
热议问题