web-dev-qa-db-ja.com

jenkinsでmstestを実行しようとしてエラーが発生しました

JenkinsでMSTestビルドプラグインを構成しようとしていますが、次のエラーが発生します。

Path To MSTest.exe: mstest.exe
Result file was not found so no action has been taken. file:/C:/Program%20Files%20(x86)/Jenkins/jobs/SoftwrenchvNext/workspace/TestResult.trx
FATAL: null
Java.lang.NullPointerException
    at org.jenkinsci.plugins.MsTestBuilder.perform(MsTestBuilder.Java:144)

この構成では、TestResult.trxをResultFileNameとして指定するだけです。このファイルはバージョン管理されておらず、ビルドごとに作成されることを期待しています。

そのために何をする必要がありますか?

私もまったく同じエラーメッセージを受け取りました。

私の推奨は、「単体テストをMSTestで実行する」ステップを置き換えることです。 「Windowsバッチコマンドを実行する」ステップ。これでうまくいきました。

コマンド

del TestResults.trx
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\MSTest.exe" /testcontainer:Example.Tests\bin\Debug\Example.Tests.dll /resultsfile:TestResults.trx

この手法を使用しても、「MSTestテスト結果レポートの発行」ステップを指定して、次のことを行うことができます...

テストレポートTRXファイル

TestResults.trx

幸運を!

また、下記の「EXIT」呼び出しを使用して、「失敗したテストを続行」機能を「シミュレート」できます。

del TestResults.trx
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\MSTest.exe" /testcontainer:Example.Tests\bin\Debug\Example.Tests.dll /resultsfile:TestResults.trx /nologo
EXIT /B 0
22
sky-dev

調査の結果、次のようにしてMSTestをJenkinsで動作させることができました。

「ジェンキンスの管理」を選択します

enter image description here

Jenkinsの管理から、システムの構成を選択します

enter image description here

システムの構成では、MSTestを見つけて、MSTest構成を追加する必要があります。

enter image description here

必要に応じて構成を入力します。鉱山は次のように表示されます。

enter image description here

構成を保存してからビルドプロジェクトに移動し、以下に示すように適切な項目を構成します。

enter image description here

注意すべき点の1つは、著者のサイトに記載されている手順を実行しなかったということです。しかし、コードを読んで少し時間をかけて調べたところ、不足している部分がJenkinsの[システムの構成]ページにあることがわかりました。

乾杯!

29
Terry Rice

もう1つの注意点:これは.NetCoreでは機能せず、通常の.Net Frameworkでは機能しません( https://github.com/Microsoft/vstest/issues/1213#issuecomment-338561792 および https://developercommunity.visualstudio.com/content/problem/238572/mstest-command-line-reports-no-tests-to-run.html

Jenkinsで次のコードのようなバッチジョブを使用しました。

dotnet test src\Folder\Project.csproj --logger:trx

dotnet testの完全なリファレンスはこちらからご覧ください: https://docs.Microsoft.com/de-de/dotnet/core/tools/dotnet-test?tabs=netcore21

0
FranzHuber23

最後に、簡単なパネルを使用してMSTestを構成することをあきらめました。テストdllが見つからないため、上記のように、バッチコマンドを使用しました。以下のバッチコマンドを追加しました。実行前に.trxファイルを削除する必要がある、または一意の名前を付けないとテストが失敗することを考慮に入れていない、以前の回答のいくつかの問題に対処するためです。

これが、Jenkinsでバッチコマンドとして実行されている私のソリューションです。

"C:Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/MSTest.exe" /resultsfile:"%WORKSPACE%/MyAppTest_%BUILD_NUMBER%.trx" /testcontainer:"%WORKSPACE%/Components/ebox2/Central/MyApp/MyAppWeb/trunk/MyAppTest/bin/Release/MyAppTest.dll" /nologo /category:Build

.trxファイル名に%BUILD_NUMBER%が含まれていることに注意してください。これにより、.trxファイルが重複しているためにジョブが失敗するという問題が回避されます。

/ category:Buildでは、必要なテストを選択できることにも注意してください。テスト自体でカテゴリを設定します。

[TestCategory("Build"), TestMethod()] 

Jenkinsでの実行方法がまだわからない、または可能な場合は、いくつかのSeleniumテストがあるので、これを使用します。

0
GrahamJ