当我运行buildr test
时,它甚至没有构建我的包。这似乎是Buildr的正常行为,它可能认为在验证代码工作之前不应创建包。
麻烦的是,我正在尝试修复一个只在代码从jar运行时才会发生的问题。如果我运行我的测试,它们都会通过,但代码在生产中根本不起作用。
因此,我想在运行测试之前构建包,并仅使用包进行测试。这也可能有助于持续集成,我们希望将编译与测试分开,因为测试更容易分成单个块。
有没有办法做到这一点?
(我认为test.using :integration
将成为诀窍,但是没有......它在运行时打印出不同的信息,但它仍然会跳过构建包,然后继续针对裸文件运行。)< / p>
答案 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。希望有所帮助!