编程语言
首页 > 编程语言> > c# – MSTest,在具有测试类继承时发生[ClassCleanup]调用的时间

c# – MSTest,在具有测试类继承时发生[ClassCleanup]调用的时间

作者:互联网

我有像这样的功能测试的层次结构

[TestClass]
class BaseClass
{
// specific methods and members relevant to all functional tests are here
// ie how to work with db
}

[TestClass]
class Module1:BaseClass
{
        [ClassInitialize]
        public static void Module1TestsInit(TestContext context)
        {
             //create some db data here, which is needed only for Module1
        }
        [ClassCleanup]
        public static void Module1TestsCleanup()
        {
            //delete Module1 db data
        }
}

[TestClass]
class Module2:BaseClass
{
        [ClassInitialize]
        public static void Module2TestsInit(TestContext context)
        {
             //create some db data here, which is needed only for Module2
        }
        [ClassCleanup]
        public static void Module2TestsCleanup()
        {
            //delete Module2 db data
        }
}

当执行测试时,我期望[ModuleCleanup]将在Module1的所有方法完成时运行,然后在Module2测试完成时再次运行.我有许多类,如Module1具有相同的基类.

但是,只有当所有模块的所有测试完成时,所有ClassCleanup方法才会运行.这不方便,因为我在不同的模块中有一些冲突的数据,并希望在这个类测试完成后清理每个类的结果.

有什么想法吗?

解决方法:

我认为它与继承无关.

http://blogs.msdn.com/b/ploeh/archive/2007/01/06/classcleanupmayrunlaterthanyouthink.aspx

这就是MSTest的工作方式.

标签:c,inheritance,mstest,functional-testing
来源: https://codeday.me/bug/20190721/1494710.html