首页 文章

詹金斯MSTest问题

提问于
浏览
1

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

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

它在控制台中发出错误,说找不到文件“Example \ 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 回答

  • 1

    Jenkins使用 %WORKSPACE% 作为当前目录运行bat文件 .

    如错误消息所示,测试容器的相对路径是错误的 . 我可以想到两件事可能是这里的问题:

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

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

  • 2

    Jenkins在构建期间不会创建文件夹“SYSTEM_My_Computer_Name 2011-06-08 13_04_11”,但它在运行测试时由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

相关问题