5

在 NUnit 中,可以使用NUnit.Framework.TestContext.CurrentContext. 当我在本地机器上运行测试时,它会在测试期间正确填充。但是,当推送到运行 TeamCity 的开发服务器时,此数据结构会出现一些导致错误的问题。context.Test.FullName访问、context.Test.Name和时会发生这些错误context.Result。例如,使用以下代码:

var name = NUnit.Framework.TestContext.CurrentContext.Test.Name;

此异常发生,但仅在 TeamCity 运行测试时发生:

TearDown method failed. TearDown : System.NullReferenceException : Object reference not set to an instance of an object.
--TearDown
   at NUnit.Framework.TestContext.TestAdapter.get_Name()

TeamCity 是否没有填充TestContext或是否有正确的方法来获取这些数据?

4

1 回答 1

1

最佳猜测:这是不可能的,因为 TeamCity 没有填充 TestContext 数据结构。也不能,因为 NUnit 中的设置器不是公开的。要使此功能正常工作,可能需要修改 NUnit。

为了绕过这个限制,我们编写了自己的测试运行器,使用自定义数据结构来指示测试失败(这是这样做的主要目的)。

于 2013-05-29T21:57:40.623 回答