SVN签入时自动JUnit

时间:2008-11-02 17:44:50

标签: svn junit intellij-idea hobbitmon

我正在使用IntelliJ-Idea编写Java守护进程。我们使用JUnit对我们的代码进行单元测试,并希望在登录到subversion时自动运行。

是否有可用的工具可以自动运行单元测试,然后通过电子邮件发送报告并发送到Hobbit

5 个答案:

答案 0 :(得分:2)

我们使用Hudson作为持续集成服务器。您可以设置作业以按特定时间间隔轮询SCM并对其运行Ant任务。我们的设置是在检测到SVN的新变化时运行构建和测试目标,然后在构建或测试目标失败时向参与项目的人发送电子邮件。

答案 1 :(得分:2)

我认为你应该像其他人所建议的那样研究持续集成。我个人尝试过CruiseControl和Hudson,而且更喜欢Hudson。您可以下载并运行它以查看您是否喜欢它,配置是轻而易举的,只需:

  1. http://hudson.dev.java.net下载hudson.war。
  2. 以独立模式运行(java -jar hudson.war)。
  3. 将浏览器指向http://localhost:8080进行配置和使用。
  4. 如果您使用它,它内置了对Maven和Ant的支持,但如果没有,您只需编写自己的批处理文件/ shell脚本。

    如果不能选择持续集成,则可以查看Subversion post-commit hook(http://svnbook.red-bean.com/en/1.0/svn-book.html#svn-ch-5-sect-2.1)的使用。我没有为你描述的目的使用钩子的经验,所以我真的不能在这里提供很多帮助。

答案 2 :(得分:2)

我们将TeamCity用于所有Java项目。大多数情况下,我们使用junit和maven,TeamCity已经有了maven2 runner,因此设置新的构建任务很容易。

你告诉TeamCity你的svn主干是哪里,然后选择一个跑步者。

如果您已经使用IntelliJ,那么TeamCity就有一个插件,因此如果您在提交时通过了测试,则可以获得即时反馈。如果您真的很懒,可以在执行提交时选择远程运行,并选择“仅在测试通过时提交”。

最后一点。 TeamCity不仅限于运行java测试,我们也用它来运行python单元测试。

答案 3 :(得分:1)

我们使用CruiseControl自动构建项目并在更改提交到subversion时运行单元测试。它可以配置为在构建/单元测试失败时发送电子邮件通知。

答案 4 :(得分:1)

不确定Hobbit,但TeamCity是另一个不错的Continuous Integration服务器。它可以配置为在Subversion提交上运行,并具有一个不错的IntelliJ插件。它也会发送电子邮件。