2015-07-10 41 views
1

当我运行buildr test时,它甚至没有构建我的软件包。这看起来像是Buildr的正常行为,它可能认为只有在验证代码正常工作之后才能创建包。如何让buildr对照jar而不是类来测试?

麻烦的是,我目前正试图解决只有当代码从jar运行时才会发生的问题。如果我运行测试,它们都会通过,但代码在生产中完全不起作用。

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

有没有办法做到这一点?

(我认为test.using :integration会的伎俩,但没有...它打印出不同的信息在运行时,但它仍然跳过构建软件包,然后继续对裸文件运行。)

回答

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 

主要是我们做这个测试的战争文件时,但它应该工作正常进行定期罐为好。希望有所帮助!

+0

这看起来像一个很好的伎俩,假设我现在不必将所有的单元测试移动到不同的模块。 ;) – Trejkaz

相关问题