41

Hudson および MSTest との継続的な統合を試みています。

このジョブを実行しようとすると、次のエラーが発生します。

1 Warnung(en)
    0 Fehler

Verstrichene Zeit 00:00:00.13
[workspace] $ sh -xe C:\Windows\TEMP\hudson4419897732634199534.sh
The system cannot find the file specified
FATAL: Befehlsausführung fehlgeschlagen
java.io.IOException: Cannot run program "sh" (in directory "C:\Users\Markus\.hudson\jobs\Test1 Unit TEst\workspace"): CreateProcess error=2, Das System kann die angegebene Datei nicht finden
    at java.lang.ProcessBuilder.start(Unknown Source)
    at hudson.Proc$LocalProc.<init>(Proc.java:187)
    at hudson.Proc$LocalProc.<init>(Proc.java:157)
    at hudson.Launcher$LocalLauncher.launch(Launcher.java:649)
    at hudson.Launcher$ProcStarter.start(Launcher.java:266)
    at hudson.Launcher$ProcStarter.join(Launcher.java:273)
    at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:79)
    at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:54)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:34)
    at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:646)
    at hudson.model.Build$RunnerImpl.build(Build.java:181)
    at hudson.model.Build$RunnerImpl.doRun(Build.java:136)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:434)
    at hudson.model.Run.run(Run.java:1390)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:40)
    at hudson.model.ResourceController.execute(ResourceController.java:81)
    at hudson.model.Executor.run(Executor.java:137)
Caused by: java.io.IOException: CreateProcess error=2, Das System kann die angegebene Datei nicht finden
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(Unknown Source)
    at java.lang.ProcessImpl.start(Unknown Source)
    ... 17 more
Processing tests results in file results.trx
FATAL: No MSTest TRX test report files were found. Configuration error?
[DEBUG] Skipping watched dependency update for build: Test1 Unit TEst #5 due to result: FAILURE
Finished: FAILURE

私の構成は次のようになります。

Buildverfahren
Build a Visual Studio project or solution using MSBuild
    MSBuild Version MS Build .NET 4 
    MSBuild Build File  trunk\UnitTestWithNHibernate\UnitTestWithNHibernate.sln 
    Command Line Arguments  /p:Configuration=Release

私のコマンドラインは次のようになります。

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe"
/runconfig: trunk\UnitTestWithNHibernate\UnitTest\LocalTestRun.testrunconfig  /testcontainer: trunk\UnitTestWithNHibernate\UnitTest\bin\Debug\UnitTest.dll /resultsfile:results.trx
4

6 に答える 6

100

これは、Windows コマンドを「Windows バッチ コマンドの実行」ではなく「シェルの実行」として指定した場合に発生します。

于 2013-08-28T09:53:08.507 に答える
38

これは、Jenkins がシェル パスを認識していないために発生します。
Manage Jenkins -> Configure System -> Shell で、シェル パスを次のように設定します。

C:\Windows\system32\cmd.exe

于 2014-05-13T14:38:37.077 に答える
10

私の場合、ビルドはシステムの再起動と移行を行う前に「シェルの実行」を使用して機能し、Cannot run program "sh"その後に機能しました。問題は、システム パスが予期せず短くなったことでした。理由は定かではありませんが、パスが失われC:\Program Files (x86)\Git\bin、使用していた Git のバージョンにはsh.exe.

もちろん、@ funkybro の提案に従って、すべてのジョブですべての「シェルの実行」ビルド ステップを「Windows バッチ コマンドの実行」に変更することもできます。Windows システムまたは Linux のいずれかで実行できるジョブがあり、他の理由で両方のシステムを使用している場合、これは問題を解決しません。

または、この設定を変更してcmd.exe、@ ajith の提案に従って使用することもできます: Manage Jenkins -> Configure System -> Shell -> Shell executable =C:\Windows\system32\cmd.exe

しかし、私は Linux コマンドを使用し、Bash によく似たものを使用するのが好きです。これは私の好みですが、これも役立つかもしれないと思いました。最初から、Chocolatey NuGetを使用して Git をインストールしました。また、非常に役立つ Unix コマンドを提供する GnuWin をお勧めします。

  • Chocolatey NuGetをインストールする
  • CMD または PowerShell の場合:cinst gnuwin git

C:\Program Files (x86)\Git\bin\その後、システム パスに追加することで、Windows UI を使用してこれを修正できます。

または、Jenkins のグローバル設定で修正することもできます: Manage Jenkins -> Configure System -> Shell -> Shell executable =C:\Program Files (x86)\Git\bin\sh.exe

于 2014-07-15T15:15:31.430 に答える
2

この問題を修正する方法はC:\Windows\system32\cmd.exe 、Hudson システム構成の「シェル実行可能」構成に の値を入れることでした。

ジョブのビルド セクションでは、プロジェクト EX をコンパイルした後に Windows コマンドを実行することができます。

copy target\pmd-rules-extensions-0.0.1-SNAPSHOT.jar D:\projects\sonar\sonar-3.4.1\extensions\rules\pmd\
于 2014-10-24T07:57:12.660 に答える