NUnit和Jenkins的持续集成:需要哪些NUnit文件?

时间:2012-04-19 13:01:23

标签: .net msbuild continuous-integration hudson jenkins

目前我正试图在Jenkins上设置自动测试。我有一个包含4个不同项目的Visual Studio解决方案,其中一个是我的NUnit测试项目,其他3个项目都有几个测试。

1 我在Visual Studio中为我的Nunit测试项目添加了一个PostBuild-Event,其中包含以下内容:

`$(SolutionDir)Libs\NUnit-2.6.0.12051\bin\nunit-console.exe $(TargetPath)`

它工作正常,但这是典型的方法吗? Test项目是我构建顺序中的最后一个项目,我认为将PostBuild事件添加到其他3个项目中是不合理的?


2 正如您在上面给出的路径上看到的,我的Visual Studio项目文件夹有一个名为“Libs”的文件夹。这是我放置依赖项的地方,也是NUnit。但NUnit文件夹大约有8MB。你能告诉我哪些文件可以删除吗?因为否则每次提交源控件时,用户必须仅为NUnit传输8MB,这是我想的。

我肯定需要nunit.framework.dll才能构建测试。我还需要console-runner.exe才能运行测试。但我还需要什么呢?不幸的是,console-runnter.exe对其他一些文件有依赖性,没有它们就崩溃了。

谢谢

3 个答案:

答案 0 :(得分:3)

我一直在使用一种稍微不同的方法在Jenkins下将NUnit与Visual Studio(C#,MSBuild)集成。 VS解决方案包含几个项目,它们构建了大约10个DLL和1个应用程序。 Visual Studio解决方案不会调用NUnit。

与“应用程序”代码并排放置包含测试代码的目录。有一个独立构建的测试解决方案。它引用了应用程序解决方案的输出。

Visual Studio和NUnit都作为运行Jenkins的构建计算机上的应用程序安装。

我们的基本目录布局

  • 组件
    • bin(已创建)
    • 各种源目录
    • Component.sln
  • 测试
    • bin(已创建)
    • 各种NUnit测试用例来源
    • Tests.sln

Jenkins的基本构建步骤

  1. 使用MSBuild步骤,MSBuild Components / Components.sln
  2. 使用MSBuild步骤,MSBuild Test / Test.sln
  3. 使用Windows批处理文件步骤,在Tests / Tests.sln上调用NUnit:

    nunit-console.exe Tests\Tests.sln /xml=nunit-test-results.xml /labels

  4. 使用xUnit Jenkins插件设置后期构建操作以处理nunit-test-results.xml并显示结果。

答案 1 :(得分:0)

回答你的两个问题:

  1. 我在Test项目中使用post build事件以与您描述的相同方式运行NUnit控制台。在我们的环境中运作良好。

  2. 正如您所说,您需要将nunit.framework.dll包含在构建测试中。要运行它们,NUnit控制台将只使用以下文件非常愉快地运行:

    bin\nunit-console.exe
    bin\nunit-console.exe.config
    bin\lib\nunit.core.dll
    bin\lib\nunit.core.interfaces.dll
    bin\lib\nunit.util.dll
    bin\lib\nunit-console-runner.dll
    

    这相当于NUnit 2.6的大约500KB的文件。

答案 2 :(得分:0)

我建议编写一个脚本文件,而不是在Jenkins中定义多个步骤。我们使用powershell来调用msbuild和nunit-console。这样,我们的开发人员可以在提交之前简单地调用这个powershell脚本。如果构建/测试/捆绑/部署步骤是自包含的,那么设置Jenkins(或任何其他构建服务器)也要容易得多。