如何使用buildr来测试jar而不是类?

时间:2015-07-10 05:14:04

标签: testing build buildr

当我运行buildr test时,它甚至没有构建我的包。这似乎是Buildr的正常行为,它可能认为在验证代码工作之前不应创建包。

麻烦的是,我正在尝试修复一个只在代码从jar运行时才会发生的问题。如果我运行我的测试,它们都会通过,但代码在生产中根本不起作用。

因此,我想在运行测试之前构建包,并仅使用包进行测试。这也可能有助于持续集成,我们希望将编译与测试分开,因为测试更容易分成单个块。

有没有办法做到这一点?

(我认为test.using :integration将成为诀窍,但是没有......它在运行时打印出不同的信息,但它仍然会跳过构建包,然后继续针对裸文件运行。)< / p>

1 个答案:

答案 0 :(得分:1)

我们通过创建另一个项目来实现这一点,该项目依赖于第一个项目的输出,然后对其进行测试。即我们的集成测试的一个例子看起来像

define 'myproject' do
  ...
  define 'server' do
    ...
    package(:jar)
  end
  ...
  define 'integration-tests' do
    # Either add it as a dependency
    test.with project('server').package(:jar)
    # Or manually load jar so the classpath
    # can be explicitly controlled and pass in system
    # property to locate jar
    test.enhance([project('server').package(:jar)])
    test.using :properties =>
             {
               'jar.filename' => project('server').package(:jar).to_s,
             }
  end

大多数情况下,我们在测试war文件时会这样做,但它也适用于常规jar。希望有所帮助!