这是独家新闻: 我有一个简单的测试类:
[TestClass]
public class TestClass
{
[TestMethod]
[DataSource("System.Data.SqlClient", DATA_CONN, "myData", DataAccessMethod.Sequential)]
public void Test(){}
[AssemblyInitialize]
public void AssemblyInit(TestContext context)
{
RecreateView("myData"); //why I'm doing this is irrelevant to the question
}
}
当我在临时项目中运行它时,我的AssemblyInit()
方法首先运行,创建表,测试很愉快。当我在一个包含大量测试的更大项目中运行它时,首先使用[DataSource]
属性构建测试方法,然后调用AssemblyInit()
方法。
简而言之:
小项目 - 好
大项目 - 不好
我在每个项目中只有一个[AssemblyInitialize]
方法。它似乎也只在当地发生。有没有办法保证[AssemblyInitialize]
方法在测试尝试读取数据之前运行?