AssemblyCleanup 中的测试名称和测试输出
Test Name and Test Output in AssemblyCleanup
我对单元测试完全陌生,但我会尽力解释问题。
我们有 Junit 项目和可能超过 7K 的测试。我们有时更改一个文件会触发 20 多个失败,这令人担忧。那么无论如何我可以操纵测试输出吗?
我的想法(不知道可不可行):用[AssemblyInitialize()]和[AssemblyCleanup()]创建一个class。现在是否可以在 [AssemblyCleanup()] 中捕获测试名称和测试输出?
如果没有,谁能提出更好的想法,通过它我可以循环测试输出并操纵它们。
您可以使用 TestContext 访问测试名称和测试结果
只需在 class 的顶部实例化它,然后就可以在下面的方法中访问它。这就是我将它用于我的硒测试报告的方式。
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
}
}
您可能还遇到了装配方法的问题,因为它们不可继承,因此可能无法创建单独的 class 来使用它们。
这些是我的发现以及我如何获得 name/results 的测试。
希望这对您有所帮助。
我对单元测试完全陌生,但我会尽力解释问题。
我们有 Junit 项目和可能超过 7K 的测试。我们有时更改一个文件会触发 20 多个失败,这令人担忧。那么无论如何我可以操纵测试输出吗?
我的想法(不知道可不可行):用[AssemblyInitialize()]和[AssemblyCleanup()]创建一个class。现在是否可以在 [AssemblyCleanup()] 中捕获测试名称和测试输出?
如果没有,谁能提出更好的想法,通过它我可以循环测试输出并操纵它们。
您可以使用 TestContext 访问测试名称和测试结果
只需在 class 的顶部实例化它,然后就可以在下面的方法中访问它。这就是我将它用于我的硒测试报告的方式。
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
}
}
您可能还遇到了装配方法的问题,因为它们不可继承,因此可能无法创建单独的 class 来使用它们。
这些是我的发现以及我如何获得 name/results 的测试。
希望这对您有所帮助。