2012-04-19 73 views
2

此刻我正试图在Jenkins上设置自动测试。我有一个包含4个不同项目的Visual Studio解决方案,其中一个是我的NUnit测试项目,在其他3个项目中有多个测试。NUnit和Jenkins的持续集成:需要哪些NUnit文件?

我添加了一个PostBuild-事件我NUnit测试项目在Visual Studio中具有以下内容:

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

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


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

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

谢谢

回答

3

我一直在使用一个稍微不同的方式与詹金斯在Visual Studio中(C#,MSBuild的)整合NUnit的。 VS解决方案包含下面的几个项目,它们构建了10个DLL和1个应用程序。 Visual Studio解决方案不会调用NUnit。

坐在“应用程序”代码旁边是一个包含测试代码的目录。有独立构建的测试解决方案。它引用应用程序解决方案的输出。

Visual Studio和NUnit都作为应用程序安装在运行Jenkins的生成机器上。

我们的基本目录布局

  • 组件
    • 斌(创建)
    • 各种源目录
    • Component.sln
  • 测试
    • 斌(科瑞ED)
    • 各种NUnit测试情况的​​来源
    • Tests.sln

基本生成步骤中詹金斯

  1. 使用一个MSBuild步骤,MSBuild的组件/元件。SLN
  2. 使用一个MSBuild一步,MSBuild的测试/ Test.sln
  3. 使用Windows批处理文件的步骤,调用NUnit的测试上/ Tests.sln:

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

  4. 安装一个后生成作用使用xUnit Jenkins插件来处理nunit-test-results.xml并显示结果。

+0

感谢这个清晰简洁的答案! – callisto 2014-06-06 08:28:52

0

要回答你的两个问题:

  1. 我在我的测试项目如你所描述的相同方式来运行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 
    

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

0

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