在[AssemblyInitialize]之前加载TestMethod的[DataSource],需要它以

时间:2016-07-20 19:05:33

标签: c# visual-studio unit-testing microsoft-test-manager

我在程序集中有一堆测试。这些测试都存在于[TestClass]类中,并标有指向Sql Server的[DataSource]。这些测试类中的每一个都扩展了一个也标有[TestClass]的BaseTest。我在BaseTest中有一个[AssemblyInitialize]方法,可以在服务器上创建用于DataSource的视图(我可以使用tv来代替)。当测试通过MTM运行时,这很好。截至几个星期前,它已停止在本地工作 - 在数据加载AFTER之前(手动创建my_view,跟踪服务器,在Init()上设置断点并且没有'#n; t点击断点,直到我看到测试做SELECT * FROM [my_view])。

代码概述:

[TestClass]
MyTests : BaseTest
{
    [TestMethod]
    [DataSource("..SqlClient",CONN,"my_view",..Sequential)]
    public void MyTest(){}
}

[TestClass]
BaseTest
{
    [AssemblyInitialize]
    public static void Init(TestContext testContext){//create my_view}

    [AssemblyCleanup]
    public static void Cleanup(){//drop view}

    [TestInitialize]
    public void TestInit(){}

    [TestCleanup]
    public void TestCleanup(){}

}

我试图无济于事的事情:

  1. 将[TestMethod]添加到BaseTest
  2. 在MyTests中放置[AssemblyInitialize]
  3. 确保只有一个[AssemblyInitialize]
  4. 在VS 2013而不是2015中运行
  5. 运行Keep Test Execution Engine并运行

0 个答案:

没有答案