环境:
我刚开始一个新项目(耶!)但当前的单元测试状态有点奇怪(对我而言)。无法以自动方式运行测试。有些测试需要服务器启动并运行才能通过,否则在运行时会失败。
更糟糕的是,有大量的测试已经落后并且不再通过,尽管它们应该(或者它们本应该被更改)。
问题是测试是手动运行的(在eclipse中单击右键并作为JUnit测试运行)因此,由于没有人会在每次更改时手动测试所有内容,因此只需编写测试然后将其忘记。
我习惯于从一开始就对所有测试进行绿色开发,并希望通过自动化将测试恢复到有用的状态。
我如何:
任何建议都会有用。感谢。
更新:提出更具体的问题。
答案 0 :(得分:2)
假设你已经有了实际的工作,我建议在做其他事情之前不要尝试修复所有现有的测试。无论如何@Ignore
任何失败的测试都可以使您处理当前通过的测试。也许还会尝试为您忽略的每个失败测试做一个注释,这样当您开始研究它试图测试的代码区域时,您可以重新访问它。
如果您的测试依赖于外部服务,您可以使用assumeTrue()
在实际尝试和测试失败之前验证它们是否已启动 - 这将在运行时标记测试被忽略,因此您仍然可以获得您的构建和尽可能多的有用信息。 TestWatcher
类(如果你有一个足够新的JUnit)可以用最少的样板帮助你做到这一点 - 如果我们无法连接,我们将它设置为忽略而不是失败,然后忽略任何测试如果没有再次支付超时罚款,将会失败。
答案 1 :(得分:0)
您可以使用Jenkins为您自动化测试。它可以设置为观察源控件存储库,然后执行构建并在检测到更改时对其进行测试。这将提供一个集中的位置,您可以在其中查看构建的状态和测试的成功。