【问题标题】:Mbunit v2.4 running on Gallio inside NAnt: "The test assembly setup failed"在 NAnt 内的 Gallio 上运行的 Mbunit v2.4:“测试程序集设置失败”
【发布时间】:2011-05-01 09:07:58
【问题描述】:

亲爱的, 我正在尝试运行我在 Gallio 下使用 MbUnit v2 开发的测试。全部来自通过 TeamCity 启动的 NAnt 脚本(实际上是 TeamCity 的 CodeBetter 安装)。

测试在名为 Icarus 的 GUI Gallio Runner 内的本地机器上运行,但在运行器处于本地模式时不会运行,前提是我指定“IsolatedAppDomain”或“IsolatedProcess”。

它也可以在 NAnt 内部本地运行。 这是我使用的 nant 任务定义:

<gallio result-property="ExitCode" failonerror="true"> 
    <files> 
        <!-- Specify the tests files and assemblies --> 
        <include name="${source.dir}\UnitTests.Subtext\bin\debug\UnitTests.Subtext.dll" /> 
    </files> 
</gallio> 

但是当我签入所有内容并从 TeamCity 运行它时,该过程失败并出现以下错误:

[16:08:39]: [test] gallio (9s) 
[16:08:39]: [gallio] Gallio NAnt Task - Version 3.2 build 601 
[16:08:39]: [gallio] Start time: 9:08 AM 
[16:08:40]: [gallio] Initializing test runner.' 
flowId='cf40ac56f24b5b47 
[16:08:40]: [gallio] Running tests.' flowId='cf40ac56f24b5b47 
[16:08:46]: UnitTests.Subtext (2s) 
[16:08:48]: [UnitTests.Subtext] failed 
[16:08:48]: [UnitTests.Subtext] 
The test assembly setup failed. 
[16:08:48]: [gallio] [failed] MbUnit v2 Assembly UnitTests.Subtext 
The test assembly setup failed. 
[16:08:48]: [gallio] Disposed test runner.' flowId='cf40ac56f24b5b47 
[16:08:48]: [gallio] Stop time: 9:08 AM (Total execution time: 9.267 
seconds) 
[16:08:48]: 
Test Execution Failed

我尝试将运行器类型更改为所有 3 个可用运行器(Local、IsolatedProcess、IsolatedAppDomain),但它没有运行。

Local:好像可以加载测试,但是没有找到测试,所以运行流畅(但没有执行测试),这也是我在本地机器上运行在Icarus时的默认行为

IsolatedProcess,IsolatedAppDomain:我收到上面提到的错误。

鉴于我无法连接到机器并尝试手动运行测试,我真的不知道如何调试这个问题。 知道可能是什么问题吗?

谢谢

西蒙娜

【问题讨论】:

  • 您是否设置了 MbUnit v2 适配器插件? code.google.com/p/mb-unit/source/browse/trunk/v3/src/Extensions/…
  • 顺便说一句:升级到 MbUnit v3 应该不是什么大问题,而且可能会更顺畅。
  • 它使用相同的配置在本地工作(所有 Gallio 都在源树的子文件夹中,所以我猜应该设置 MbUnit)。除了在 Gallio bin 文件夹内的 Mbunit2 文件夹中拥有 MbUnit2Adapter 之外,还有别的什么吗?关于升级到 MbUnit v3... 我知道它会受益,但我不想更改已经发布的分支中的代码,只是为了让它在构建服务器中运行
  • 会不会是 .NET 4 中编译的测试和 CLR 2 上运行的 Gallio 进程的问题?
  • .net 4 tests vs Gallio in CLR 2 -> 绝对是个问题 :-) 不过不记得如何设置主机 CLR 版本...

标签: nant teamcity mbunit gallio


【解决方案1】:

找到了我的问题的答案:

The test assembly setup failed.

表示在带有AssemblyCleanup属性标记的程序集中,带有[SetUp]属性标记的方法中的代码失败。

在 MbUnit 中,您可以使用这些方法来执行一些预测试操作,例如设置数据库或其他类似的操作。 在我的场景中,测试数据库的设置可能会失败。

不幸的是,这是理解为什么它无法将调试器附加到它的唯一方法,这是我在 TeamCity 的托管版本上无法做到的。 我想我必须改变创建数据库的方式。

【讨论】:

  • 导致装配设置失败的异常应该出现在测试报告中。该错误可能与 TeamCity 作为服务或它使用的帐户运行这一事实有关。
  • 不幸的是它没有出现。知道如何让它出现吗?
猜你喜欢
  • 1970-01-01
  • 2011-02-16
  • 2010-09-19
  • 2011-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多