2017-09-19 27 views
1

Go CDを使用して会社のワークフローに継続的に統合する方法を学習しようとしています。私は自分のソースコントロールにGitHubを使用しています。私のパイプラインをセットアップしてリポジトリを監視し、変更があればいつでも再構築を試みます。すべて正常に動作しています。今私はパイプラインに単体テストを追加しようとしており、ユニットテストプロジェクトをビルドすることはできません。ソリューションを構築するときにGoCDでNuGetパッケージを復元する方法

この私のビルドコマンドの設定XMLです:これは私が取得していますエラーの関連する部分である

<exec command="%Windir%\Microsoft.NET\Framework64\v4.0.30319\MsBuild.exe" workingdir="UnitTest"> 
    <arg>/T:rebuild</arg> 
    <arg>/P:Configuration=Release</arg> 
    <arg>/m</arg> 
    <runif status="passed" /> 
</exec> 

を見つからないファイルがある.. \パッケージ\ MSTest.TestAdapter.1.1.18 \ build \ net45 \ MSTest.TestAdapter.props

ユニットテストプロジェクトでは、いくつかのNuGet paこれらのファイルは適切にビルドする必要がありますが、GoCDの作業ディレクトリにはありません。エラーメッセージで指定された場所にNuGetパッケージを復元するユニットテストを構築しようとする前に、パイプラインにジョブを追加しました。ここに私は、ナゲットのコマンドを復元用のconfig XMLは次のとおりです。

<exec command="C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\ReadyRoll\Octopack\build\NuGet.exe" workingdir="UnitTest"> 
    <arg>restore</arg> 
    <arg>packages.config</arg> 
    <arg>-PackagesDirectory</arg> 
    <arg>..\packages</arg> 
    <runif status="passed" /> 
</exec> 

私はパイプラインを再実行し、作業ディレクトリを監視したとき、私はしかし、ステップが実行された「復元」するときNuGetファイルが作成されます見ますユニットテストプロジェクトをビルドするとファイルが削除され、私はまだエラーが発生します。

私は/ T:私のMSBuildコマンドで再構築していたが、これを/ T:buildに変更してもファイルを削除していたためだと思った。

NuGetパッケージを使用してプロジェクトをビルドするパイプラインにどのようにジョブを追加する方法についてのヒントを教えてもらえますか?私はプロジェクトファイルに "NuGet.exeの復元"コマンドを追加することを考えましたが、私はそれを行う方法を理解できませんでしたか?

ありがとうございます!

答えて

0

私が間違っていたことを理解しました。別のジョブでビルドとリストアのコマンドを設定したので、同じジョブで両方のタスクを実行する必要がありました。私はそれをし、それは働いた。

これはGoCDが各仕事の材料をチェックアウトする方法と関係があると思いますか?しかし、私はこれに新しいので(理由について正しいかもしれない)、私はこの変更がなぜそれを働かせた原因について推測するつもりはありません。

誰かがその理由を知っていれば、私は知ってうれしいです。

関連する問題