2

我在我的计算机上运行 JUnit 每晚构建作为 Windows XP 中的计划任务。我的应用程序使用 Jaxb,因此一些测试需要使用系统类路径引用 xsd 模式。当我不在计算机上时运行夜间构建时,我收到如下错误:

java.lang.Exception:无法从类路径加载架构 mySchema.xsd

但是,当我手动运行构建时,我没有收到这样的错误。我的模式位置的环境变量是系统变量,而不是用户变量,所以我不知道是什么导致了这个错误。这个错误可能是什么原因?

编辑:像哈德逊这样的替代品不是我想要的。我正在寻求上述技术的解决方案(作为计划任务运行的批处理文件)。

4

3 回答 3

1

您应该查看HudsonCruise Control。两者都易于设置,并将通过更多报告、控制和改进的可用性为您解决此类问题。您将花费更少的时间调查构建问题。

于 2009-04-16T15:16:00.980 回答
1

我怀疑您的工作目录与您期望的不同(而不是具体的类路径变量)。如果您以用户或系统任务的身份运行此计划任务,这并不是很明显。无论哪种情况,都值得找出任务运行的确切位置。

也就是说,虽然我曾经使用 Windows XP 计划任务设置自动构建(就像您现在所做的那样),但我们目前使用CruiseControl。概括地说,这与您正在做的事情(定期运行构建)没有太大区别,但它增加了您的灵活性。在这里,CruiseControl 最有价值的功能是检测已提交的更改并仅在那时运行构建。现在,我们在提交后 10 分钟内发现了损坏的构建、损坏的单元测试等。

于 2009-04-16T15:26:32.020 回答
1

hudson是另一个持续集成引擎,设置起来非常简单:

哈德逊提供以下功能

  • 易于安装:只需 java -jar hudson.war,或将其部署在 servlet 容器中。无需额外安装,无需数据库。
  • 易于配置:Hudson 可以完全从其友好的 Web GUI 进行配置,具有广泛的即时错误检查和内联帮助。不再需要手动调整 XML,但如果您愿意,也可以这样做。
  • 变更集支持:Hudson 可以生成从 CVS/Subversion/Mercurial 对构建所做的更改列表。这也以相当有效的方式完成,以减少存储库的负载。
  • 永久链接:Hudson 为您的大部分页面提供了清晰可读的 URL,包括一些永久链接链接“最新构建”/“最新成功构建”,以便可以轻松地从其他地方链接它们。
  • RSS/E-mail/IM 集成:通过 RSS 或电子邮件监控构建结果,以获取有关失败的实时通知。
  • 事后标记:可以在构建完成后很长时间对构建进行标记 JUnit/TestNG 测试报告:JUnit 测试报告可以制表、汇总和显示历史信息,例如何时开始中断等。绘制历史趋势成图表。
  • 分布式构建:Hudson 可以将构建/测试负载分布到多台计算机。这使您可以充分利用位于开发人员办公桌下方的闲置工作站。文件指纹:Hudson 可以跟踪哪个构建生成了哪些 jar,以及哪个构建使用了哪个版本的 jar,等等。这甚至适用于在 Hudson 之外生成的 jar,并且非常适合项目跟踪依赖关系。
  • 插件支持:Hudson 可以通过 3rd 方插件进行扩展。您可以编写插件以使 Hudson 支持您的团队使用的工具/流程。
于 2009-04-16T16:13:42.500 回答