java - 如何在 splinter 的测试环境中继续前进?

标签 java unit-testing maven junit

环境:

  • Java
  • Maven
  • eclipse
  • Spring
  • Jetty 促进开发
  • JUnit

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

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

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

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

我该怎么办:

  • 将测试标记为不运行是有原因的(例如“旧测试需要更新”或“仅通过服务器通过”)。
  • 根据服务器是否启动运行不同的测试。
  • 记录测试统计数据以了解测试信息趋势的某种方法(不太重要)

任何建议都会有用。谢谢。

更新:使问题更加具体。

最佳答案

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

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

关于java - 如何在 splinter 的测试环境中继续前进?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8733418/

相关文章:

java - MutliModule 和 EAR 之间的区别

java - 在 Java 中播放声音时出错

java - 如何在 Mockito 和 JUnit 中模拟具有复杂请求的服务?

unit-testing - 我们如何测试构建 R 包时未公开的函数?

php - 在 Laravel 4 单元测试中,如何在请求中设置 cookie?

maven-javadoc-plugin 不接受 <additionalparam>-Xdoclint :none</additionalparam>

maven - 如何增加 Ant 永久元的大小?

java - Hibernate + PostgreSQL 抛出异常 : Unknown entity

java - 身份验证提供程序 : SecurityProvider service class name for XXXX is not specified in WL 12. 1.3.0.0

javascript - 单元测试: Having trouble mocking a promise return to test my emit