詹金斯MSTest问题

时间:2011-06-08 06:21:48

标签: hudson mstest jenkins

我已将Jenkins配置为使用Mercurial作为源代码管理的项目的CI。我在Jenkins中使用MSTest插件来查看测试结果,我编写了一个bat命令来生成测试结果文件

del results.trx
mstest /testcontainer:Example\TestProject1\bin\debug\TestProject2.dll /resultsfile:results.trx

它在控制台中发出错误说文件“未找到示例\ TestProject1 \ bin \ debug \ TestProject2.dll”

当每次构建发生时,在%WORKSPACE%下创建一个具有新名称的文件夹(SYSTEM_My_Computer_Name 2011-06-08 13_04_11)。因为测试dll在一个名为out的目录中。我怎样才能获得该dll的路径,因为每个构建都更改了目录名称?

当我使用像“c:\ Example \ TestProject1 \ bin \ debug \ TestProject2.dll”这样的绝对网址时工作正常

我们如何引用新建的dll? 我是否需要将测试dll文件添加到存储库中?

2 个答案:

答案 0 :(得分:2)

Jenkins以%WORKSPACE%作为当前目录运行bat文件。

如错误消息所示,测试容器的相对路径错误。我可以想到两件可能成为问题的事情:

  • %WORKSPACE%下的文件夹结构与您的相对路径不匹配。在bat文件中自己添加cd将在构建输出中显示这是什么。您还可以使用Jenkins web ui中的链接来浏览工作区。

  • 您正在Jenkins中构建不同的msbuild目标,例如 release 。然后 \ bin \ debug 可能不存在。

答案 1 :(得分:1)

文件夹“SYSTEM_My_Computer_Name 2011-06-08 13_04_11”不是由Jenkins在构建期间创建的,而是由mstest在运行测试时创建的。调用mstest时的根文件夹是工作空间根文件夹,因此应该从工作空间根目录指定testcontainer文件。

例如,假设dll文件位于C:\ jenkins \ jobs \\ workspace \ TestProject1 \ bin \ debug \ TestProject2.dll(假设您的jenkins安装在c:\ jenkins下)。

命令应该是(相对于工作空间根文件夹):

mstest /testcontainer:TestProject1\bin\debug\TestProject2.dll /resultsfile:results.trx