oil*_*lio 17 unit-testing mstest visual-studio-2010
我正在设置一些基于MSTest的单元测试.为了让我的生活更轻松,我想使用一个基类来处理通用设置和我所有测试所需的taredown.我的基类看起来像这样:
[TestClass]
public class DBTestBase {
public TestContext TestContext { get; set; }
[ClassInitialize()]
public static void MyClassInitialize(TestContext testContext) {
var config = new XmlConfigurationSource("ARconfig_test.xml");
ActiveRecordStarter.Initialize(Assembly.Load("LocalModels"), config);
}
[TestInitialize()]
public void MyTestInitialize() {
ActiveRecordStarter.CreateSchema();
Before_each_test();
}
protected virtual void Before_each_test() { }
[TestCleanup()]
public void MyTestCleanup() {
After_each_test();
}
protected virtual void After_each_test() { }
}
Run Code Online (Sandbox Code Playgroud)
我的实际测试类看起来像这样:
[TestClass]
public class question_tests : DBTestBase {
private void CreateInitialData() {
var question = new Question()
{
Name = "Test Question",
Description = "This is a simple test question"
};
question.Create();
}
protected override void Before_each_test() {
base.Before_each_test();
CreateInitialData();
}
[TestMethod]
public void test_fetching() {
var q = Question.FindAll();
Assert.AreEqual("Test Question", q[0].Name, "Incorrect name.");
}
}
Run Code Online (Sandbox Code Playgroud)
TestInitialize函数按预期工作.但ClassInitialize函数永远不会运行.如果我将以下内容添加到我的子类中,它会运行:
[ClassInitialize()]
public static void t(TestContext testContext) {
MyClassInitialize(testContext);
}
Run Code Online (Sandbox Code Playgroud)
是否有可能让我的基类初始化函数运行而不在我的子类中引用它?