2013-04-16 51 views
3

我将基于Karma的JS单元测试添加到Maven。我使用了以下配置:我的机器上将Karma JavaScript测试与Maven集成

<plugin> 
    <groupId>com.kelveden</groupId> 
    <artifactId>maven-karma-plugin</artifactId> 
    <version>1.0</version> 
    <executions> 
     <execution> 
      <goals> 
       <goal>start</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <browsers>Chrome</browsers> 
    </configuration> 
</plugin> 

测试单独进行工作(无Maven的)当我使用karma start karma.conf.js,但与Maven我得到了以下错误:

[ERROR] Failed to execute goal com.kelveden:maven-karma-plugin:1.0:start (default) 
on project web: There was an error executing Karma. Cannot run program "karma": 
CreateProcess error=2, The system cannot find the file specified -> [Help 1] 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal 
com.kelveden:maven-karma-plugin:1.0:start (default) on project web: 
There was an error executing Karma. 
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217) 
... 
Caused by: java.io.IOException: Cannot run program "karma": CreateProcess error=2, 
The system cannot find the file specified 
     at java.lang.ProcessBuilder.start(ProcessBuilder.java:460) 
     at com.kelveden.karma.StartMojo.createKarmaProcess(StartMojo.java:151) 
     ... 22 more 
Caused by: java.io.IOException: CreateProcess error=2, 
The system cannot find the file specified 
     at java.lang.ProcessImpl.create(Native Method) 
     at java.lang.ProcessImpl.<init>(ProcessImpl.java:81) 
     at java.lang.ProcessImpl.start(ProcessImpl.java:30) 
     at java.lang.ProcessBuilder.start(ProcessBuilder.java:453) 
     ... 23 more 

这是为什么我觉得这有点奇怪:根据this class,默认应该找到karma.conf.js@Parameter(defaultValue = "${basedir}/karma.conf.js", property = "configFile", required = true))。另外,我试图在-DconfigFile=...参数中传递绝对路径和相对路径,但它不起作用。我使用Windows,但我认为这不应该是一个问题。我不确定配置中究竟会发生什么错误,我们将不胜感激。

回答

1

我认为这是一个bug,已经修复了。

我试着用这个插件的版本1.2-SNAPSHOT再次运行测试(克隆它并构建),它正确地开始了Karma。

0

它看起来对我说karma.conf.js到位(即参数不工作),而是“因果报应”可执行文件不存在,按照

final ProcessBuilder builder = new ProcessBuilder("karma", "start", configFile.getAbsolutePath());

从您已将档案提及。