我有几个TestClasses,每个TestMethods 都很少。再次,我需要为每个TestMethods 创建数据,所有这些都是SuiteBase 文件中的句柄,每个TestClasses 都继承该文件。我需要为每个 TestClass 创建一次数据,以便该类中的所有 TestMethods 都可以使用相同的数据。为此,我将数据创建代码放在 SuiteBase 文件的 ClassInitialize 下。SuiteBase 的结构:
public class SuiteBase
{
[ClassInitialize]
public void ClassInit()
{
//Create the data for the all test cases under one TestClass
}
[TestInitialize]
public void Init()
{
//Starts the app each time for each TestMethod
}
测试类结构:
[TestClass()]
public class ScenarioOne : SuiteBase
{
[TestMethod()]
public void TestCase1()
{
//Blah Blah
}
[TestMethod()]
public void TestCase2()
{
//Blah Blah
}
[TestMethod()]
public void TestCase3()
{
//Blah Blah
}
}
现在我正在尝试从我的测试资源管理器中运行单元测试(按类分组)。
理论上,在任何 TestMethods 开始之前,SuiteBase 中的 ClassInitialize 代码应该首先工作。但我看到 ClassInitialize 代码不只是运行。我在ClassInitialize中放了一个断点并调试,代码根本没有执行。我对 ClassInitialize 的行为的假设是错误的,还是我在这里做一些根本错误的事情?