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 的测试。

希望这对您有所帮助。