我的问题是我的[AssemblyCleanup]
方法未被调用。
我目前正在构建一个自动化框架,并希望在我的测试之前和之后完成一些API调用。我已经找到了程序集初始化/清理方法,它们可以完美地满足我的需要。但是我无法运行[AssemblyCleanup]
方法。
我有一个我的测试所固有的基类,而这就是我希望放置[AssemblyCleanup]
方法的地方。
我的课。
[TestClass]
public class TestBaseChrome: WebDriver
{
public TestContext TestContext { get; set; }
[TestInitialize]
public void Initialize()
{
//Do Stuff Here for tests
}
[TestCleanup]
public void Cleanup()
{
//used for end of test reporting
}
[AssemblyCleanup]
public static void EndOfSuiteActions()
{
//Stuff here when whole test suite finished
}
}
我看过示例here和here并显示[AssemblyCleanup]
需要位于具有[TestClass]
属性的类中。如果我将[AssemblyCleanup]
放在具有实际测试的类中,它将按预期工作。但我希望我以前的所有测试/测试后都能进行一次测试。
任何建议都将不胜感激。
答案 0 :(得分:4)
我相信我找到了自己问题的答案。
如果[TestClass]
继承自派生类的不同程序集中的基类,则不会执行基类[AssemblyInitialize]
和[AssemblyCleanup]
方法。
因为我的自动化测试在解决方案中的两个项目中(一个用于处理框架,另一个用于处理测试),而基类在框架中,但测试是另一个项目。我在链接中遇到了这个问题。