使用NUnit和Nuget与Bamboo Cloud

时间:2016-05-17 12:51:24

标签: nuget nunit bamboo

我正在尝试为.Net项目创建Bamboo Cloud(而不是Bamboo Server)的计划:

  1. 从Bitbucket查看
  2. Nuget获取所有包
  3. MSBuild编译解决方案
  4. NUnit运行单元测试
  5. 1)和3)很简单,但我无法弄清楚如何创建运行Nuget和NUnit的任务。您似乎首先必须在构建代理上安装可执行文件。我找到了有关如何为Linux执行此操作的文档,但没有找到适用于Windows的文档。

    如何使用Bamboo Cloud创建Nuget和NUnit任务?

1 个答案:

答案 0 :(得分:1)

我是通过将我的工作分成4个任务来完成的:

  1. 源代码检查
  2. 正如您所料。无论如何,它是作业中的默认任务。

    1. 下载NuGet.exe
    2. 带有

      的单线程Powershell内联脚本
      Invoke-WebRequest -Uri 'http://nuget.org/nuget.exe' -OutFile '.\nuget.exe'
      
      1. 通过NuGet
      2. 下载所有程序包依赖项

        这种方法现在似乎是"新的"建议的方法,因此它是一个执行

        的简单CMD文件
        nuget.exe restore
        
        1. 的MSBuild
        2. 使用.SLN文件作为任务中项目文件选项的参数,并在选项字段中传递任何所需的其他msbuild选项

          我的Bamboo服务器在Linux上,我的远程代理在Windows构建机器上。

          在您的情况下,您将跟进5.任务,例如Nunit测试 - 虽然您可能决定将其放入一个单独的阶段,并将测试分成可并行运行的作业。

          编辑:差点忘了:我还有一个Nuget.config文件

          <?xml version="1.0" encoding="utf-8"?>
          <configuration>
            <packageRestore>
              <!-- Allow NuGet to download missing packages -->
              <add key="enabled" value="True" />
              <!-- Automatically check for missing packages during build in Visual Studio -->
              <add key="automatic" value="True" />
            </packageRestore>
            <packageSources>
              <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
              <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
              <add key="Syncfusion" value="http://nuget.syncfusion.com/xamarin/" />
            </packageSources>
            <!-- Used to specify which one of the sources are active -->
            <activePackageSource>
              <!-- this tells only one given source is active -->
              <add key="NuGet official package source" value="https://nuget.org/api/v2/" />
              <!-- this tells that all of them are active -->
              <add key="All" value="(Aggregate source)" />
            </activePackageSource>
          </configuration>