有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我如何在一个坏的测试环境中前进?

环境:

  • 爪哇
  • 马文
  • 弹簧
  • 显影剂码头
  • 朱尼特

我刚开始一个新项目(耶!)但是当前的单元测试状态(对我来说)有点奇怪。没有办法以自动化的方式运行测试。有些测试需要服务器启动并运行才能通过,否则会失败

更糟糕的是,有大量测试已经落后,不再通过,尽管它们应该(或者应该被改变)

问题在于测试是手动运行的(在eclipse中右键单击并作为JUnit测试运行),因此由于没有人会在每次更改时手动测试所有内容,所以测试只是简单地编写,然后就被忘记了

我从一开始就习惯于使用绿色测试进行开发,我希望通过自动化将测试恢复到有用的状态

我如何:

  • 将测试标记为不带原因运行(如“旧测试需要更新”或“仅通过服务器”)
  • 根据服务器是否启动运行不同的测试
  • 记录测试统计数据以分析测试信息趋势的一些方法(不那么重要)

任何建议都是有用的。谢谢

更新:使问题更加具体


共 (2) 个答案

  1. # 1 楼答案

    您可以使用Jenkins为您自动执行测试。可以将其设置为监视源代码管理存储库,然后执行构建并在检测到更改时对其进行测试。这将提供一个集中的地方,您可以在这里查看构建的状态和测试的成功

  2. # 2 楼答案

    假设您有实际的工作要做,我建议不要在做任何其他事情之前尝试修复所有现有的测试。无论如何@Ignore任何失败的测试,以便您可以处理当前通过的测试。也许还可以试着为您忽略的每个失败的测试做一个记录,这样当您开始处理它试图测试的代码区域时,您可以重新访问它

    如果您的测试依赖于外部服务,您可以使用assumeTrue()在实际尝试并失败测试之前验证它们是否已启动。这将标记测试在运行时被忽略,因此您仍然可以获得构建和尽可能多的有用信息。TestWatcher类(如果您有一个足够新的JUnit)可以帮助您使用最少的样板文件来完成这项工作,我们将它设置为忽略,而不是在无法连接时失败,然后忽略任何随后将失败的测试,而不必再次支付超时惩罚