【问题标题】:Teamcity NUnit Tests - No assemblies foundTeamcity NUnit 测试 - 未找到程序集
【发布时间】:2014-08-23 11:07:16
【问题描述】:

我正在尝试为某个项目设置 TeamCity。我想运行一个计划的构建,其中包含一个运行 NUnit 测试的步骤。

我的 NUnit 构建步骤如下所示:

Runtime: NUnit-2.6.3 v4.0 MSIL
Run tests on: **/Tests/*.dll
Execute: If all previous steps finished successfully

但每次我运行构建时都会收到一条错误消息:

No assemblies were found.

为什么会发生这种情况,我该如何解决?此外,从概念上讲,此构建步骤将在项目实际构建之前发生。但是,除非首先构建项目,否则会有任何测试 DLL(程序集)吗?

【问题讨论】:

  • 您是否在构建代理上验证了这些目录确实存在并且有文件?不,你不能在测试建立之前运行测试吗?为什么要这样设置?
  • 代理是本地的。是的,DLL 确实存在于使用的目录中。
  • 只是为了确保,在测试步骤之前添加一个命令行构建步骤并添加这个命令:dir /s,然后运行它并查看构建日志的内容。你看到你的测试 dll 了吗?
  • 完成。显示我的解决方案拥有的所有目录。我可以看到“测试”目录。
  • 里面有dll吗?

标签: unit-testing nunit teamcity


【解决方案1】:

我建议您在运行测试之前构建您的项目。实现这一点的最常见方法是您有单独的配置来构建代码和运行测试。

您的构建配置会生成人工制品(很可能包含程序集)。

测试运行配置将通过 artefacts 依赖项提取此 artefact 包,然后在构建步骤中从特定程序集运行测试。

这是最常用的方法,使用这种方法您不必担心文件系统中的文件。 Teamcity 的快照隔离和人工制品依赖关系将解决这个问题(如果配置正确)

如果您需要如何实现此目的的示例,请告诉我。

【讨论】:

  • 这行得通。我忘记包含一个单独的步骤来构建项目(MSBuild、VS sln build 等)
  • @Dejan 您能否提供一个示例或链接,其中包含您在答案中描述的示例?我认为这正是我所需要的,但我对 teamcity 还很陌生,不知道如何进行各种配置。
  • 我不知道为什么我第一次设置它时没有这个问题,当我这样做的时候它让我有一段时间。但是,是的,测试取决于首先构建的其他项目。 +1
  • 也许纯属运气,如果您在(构建和测试)配置上都设置了 VCS 触发器,则构建配置触发器可能在测试之前触发,因此,测试已经准备好人工制品
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-24
  • 1970-01-01
  • 2011-03-30
  • 1970-01-01
  • 2011-09-14
  • 1970-01-01
相关资源
最近更新 更多