我正在努力学习如何使用Go CD来实现对我公司工作流程的持续集成。我使用GitHub进行源代码管理,并将管道设置为监视更改的存储库,并在发生更改时尝试重新构建。一切都很好。现在,我试图将单元测试添加到管道中,但无法构建单元测试项目。
这是构建命令的配置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>这是我得到的错误的相关部分:
缺少的文件是..\packages\MSTest.TestAdapter.1.1.18\build\net45\MSTest.TestAdapter.props
单元测试项目使用一些NuGet包,因此需要正确构建这些文件,但它们不在GoCD的工作目录中。在尝试构建将NuGet包还原到错误消息中指定位置的单元测试之前,我向管道中添加了一个作业。下面是我的restore命令的配置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文件,但是构建单元测试项目会删除这些文件,但我仍然会得到错误。
我认为这是因为我在MSBuild命令中使用了MSBuild,但当我将其更改为/T:build时,它仍然删除了文件。
有人能告诉我如何将作业添加到使用NuGet包构建项目的管道中吗?我考虑将"NuGet.exe还原“命令添加到项目文件中,但我不知道如何做到(或者是否可以完成?)
提前感谢!
发布于 2017-09-20 19:02:45
我知道我做错了什么。我在不同的作业中设置了构建和还原命令,我需要使它们都在同一个任务中。我这么做了,而且成功了。
我认为这与GoCD如何检查每项工作的材料有关?但是,由于我对此非常陌生(可能对原因也不正确),所以我不打算猜测为什么这一变化会导致它发挥作用。
如果有人知道原因,我很乐意知道。
https://stackoverflow.com/questions/46306968
复制相似问题