3

Karma ベースの JS 単体テストを 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

少し奇妙だと思う理由は次のとおりです。このクラスによると、 はkarma.conf.jsデフォルトで見つかるはずです ( @Parameter(defaultValue = "${basedir}/karma.conf.js", property = "configFile", required = true))。また、-DconfigFile=...パラメーターに絶対パスと相対パスを渡そうとしましたが、機能しませんでした。Windowsを使っていましたが、問題ないと思います。構成のどこが間違っているのか正確にはわかりませんが、アドバイスをいただければ幸いです。

4

2 に答える 2

0

karma.conf.js が配置されているように見えますが (つまり、パラメーターは機能します)、「karma」実行可能ファイルはそうではありません。

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

あなたが言及したファイルから。

于 2013-04-16T21:30:10.230 に答える