【问题标题】:Maven POM executes the old test case class from TestNG XMLMaven POM 从 TestNG XML 执行旧的测试用例类
【发布时间】:2019-05-08 13:54:36
【问题描述】:

我一直在 Eclipse 上使用 Selenium 和 JAVA 以及 Maven 和 TestNG。我的测试运行良好。但是每当我在 TestNG.xml 文件中更改我的 JAVA 类名时,Maven POM 仍然会选择并执行前面在 TestNG.xml 中提到的旧类。

  1. 例如,我的 TestNG.xml 提到了“Class1”。
  2. 当我运行“mvn test”命令时,“Class1”被执行。
  3. 现在我将 TestNG.xml 中的类名更改为“Class2”。
  4. 我运行“mvn test”命令,但仍然执行“Class1”,而“Class2”应该已经执行。 我已经尝试更新 eclipse 项目并清理 mvn 项目,但它仍然执行旧的测试类。

感谢任何帮助。

【问题讨论】:

    标签: java eclipse maven selenium testng


    【解决方案1】:

    当您通过 Eclipse 使用 MavenTestNG 时,一旦您在 testng.xml 中进行更改:

    • 确保将testng.xml 放置在指定位置,并且target目录或其任何子目录中作为Maven 测试的输出 被推送到 target 目录。
    • 在执行测试之前,请确保您已保存修改后的testng.xml
    • 保存pom.xml 也将保存testng.xml 中的更改。
    • 清理target目录。
    • 通过 CLI / IDE (Eclipse) 清除之前的依赖:

      mvn clean
      
    • 通过CLI/IDE(Eclipse)下载安装必要的依赖:

      mvn install
      
    • 通过CLI/IDE(Eclipse)执行测试:

      mvn test
      
    • 刷新target目录并查看结果。

    【讨论】:

      【解决方案2】:

      mvn test 会运行测试用例,它不会清理代码,所以使用下面的命令

       mvn clean test
      

      clean 目标删除之前构建生成的所有文件

      【讨论】:

        【解决方案3】:

        第 1 步:手动清除 /Target/ 文件夹中的所有内容(如果其中包含任何内容)(备份类文件夹)

        • 测试类
        • Surefire 报告
        • 生成的来源
        • Maven 状态

        Step-2 : 运行 Maven Build-Compile (检查类文件是否生成)

        第 3 步:完成。运行测试和验证。

        【讨论】:

        • 试过了,但没用。我观察到的是在“target/surefire reports”文件夹中创建了一个“旧”文件夹。这个“旧”文件夹包含“Testng.xml”,其中结合了 Class1 和 Class2,因此它正在运行两个测试类。
        • 这就是我上面所告知的,一旦你从目标文件夹中删除所有内容,然后在你的新版本中,它将是新实例。所以它会起作用。
        猜你喜欢
        • 2017-04-23
        • 2017-06-17
        • 1970-01-01
        • 2012-09-23
        • 2015-06-14
        • 1970-01-01
        • 2016-03-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多