我对单元测试完全不熟悉,但我会尽力解释这个问题。
我们有Junit项目,可能超过7K测试。我们有时会在一个文件中进行更改,这会导致超过20次失败,这令人担忧。那么无论如何我可以操纵测试输出吗?
我的想法(不知道它是否可行):使用[AssemblyInitialize()]和[AssemblyCleanup()]创建一个类。现在可以在[AssemblyCleanup()]中捕获测试名称和测试输出吗?
如果没有人可以提出更好的想法,我可以通过它来循环测试输出并操纵它们。
答案 0 :(得分:1)
您可以使用TestContext
访问测试名称和测试结果只需在类的顶部实例化它,然后就可以通过以下方法访问它。这就是我如何将它用于我的selenium测试报告。
public class TestBaseChrome: WebDriver
{
public TestContext TestContext { get; set; }
[TestInitialize]
public void Initialize()
{
//Do stuff here
}
[TestCleanup]
public void Cleanup()
{
var testName = TestContext.TestName;
var testResult = TestContext.CurrentTestOutcome.ToString();
//Do what you need
}
}
您可能还遇到装配方法的问题,因为它们不可继承,因此可能无法创建使用它们的单独类。
这些是我的发现,以及我如何获得测试的名称/结果。
希望这会有所帮助。