如何在不构建解决方案两次的情况下 运行 单元测试和部署我的代码?
How can I run unit tests and deploy my code without building the solution twice?
我正在为一个使用 NUnit 进行单元测试的 ASP.NET 站点设置 TeamCity 部署。如何以只需要构建一次但允许我在部署代码之前 运行 我的测试的方式设置我的构建?
我的构建配置目前是这样设置的:
1) MSBuild - Build with no deploy.
2) NUnit - Run unit tests.
3) MSBuild - Build again, adding /p:PublishProfile and /p:DeployOnBuild parameters to deploy after building via WebDeploy.
理想情况下,我只想构建一次以缩短构建时间,但我不想 运行 在代码已经部署后进行单元测试。
我可以在 msbuild 步骤的中间调用 NUnit 吗?这样我就可以将我的 3 个步骤合并为 1 个步骤。
或者,我可以在 TeamCity 中使用 msdeploy 命令吗?这可以取代我的第三步,只要我仍然可以将其连接到我的 WebDeploy 端点。
这很简单:只需将您自己的 msbuild 文件写入 运行 三个目标,每个目标都取决于前一个目标:
Target Build - 构建项目(即解决方案文件)
Target RunUnitTests -(取决于 Target Build)。这 运行 是单元测试。
Target Deploy -(取决于 Target RunUnitTests)。这会将您的应用程序部署到任何地方。
看起来像这样:
<Target Name="Build">
<!-- Do Build Stuff here -->
</Target>
<Target Name="Tests" DependsOnTargets="Build">
<!-- Run NUnit tests here -->
</Target>
<Target Name="Deploy" DependsOnTargets="Tests">
<!-- Deploy your stuff here -->
</Target>
然后在 TeamCity 中,添加一个 msbuild 步骤并让它指向上面的文件。然后调用 'Deploy' 目标。
我正在为一个使用 NUnit 进行单元测试的 ASP.NET 站点设置 TeamCity 部署。如何以只需要构建一次但允许我在部署代码之前 运行 我的测试的方式设置我的构建?
我的构建配置目前是这样设置的:
1) MSBuild - Build with no deploy.
2) NUnit - Run unit tests.
3) MSBuild - Build again, adding /p:PublishProfile and /p:DeployOnBuild parameters to deploy after building via WebDeploy.
理想情况下,我只想构建一次以缩短构建时间,但我不想 运行 在代码已经部署后进行单元测试。
我可以在 msbuild 步骤的中间调用 NUnit 吗?这样我就可以将我的 3 个步骤合并为 1 个步骤。
或者,我可以在 TeamCity 中使用 msdeploy 命令吗?这可以取代我的第三步,只要我仍然可以将其连接到我的 WebDeploy 端点。
这很简单:只需将您自己的 msbuild 文件写入 运行 三个目标,每个目标都取决于前一个目标:
Target Build - 构建项目(即解决方案文件) Target RunUnitTests -(取决于 Target Build)。这 运行 是单元测试。 Target Deploy -(取决于 Target RunUnitTests)。这会将您的应用程序部署到任何地方。
看起来像这样:
<Target Name="Build">
<!-- Do Build Stuff here -->
</Target>
<Target Name="Tests" DependsOnTargets="Build">
<!-- Run NUnit tests here -->
</Target>
<Target Name="Deploy" DependsOnTargets="Tests">
<!-- Deploy your stuff here -->
</Target>
然后在 TeamCity 中,添加一个 msbuild 步骤并让它指向上面的文件。然后调用 'Deploy' 目标。