【发布时间】:2013-12-20 09:46:02
【问题描述】:
我面临一个尴尬的情况 - 存在 [ClassInitialize] 方法的所有测试类都无法执行内部的所有测试方法。
例子:
[TestClass]
public class ChargeAccountServiceTests
{
private static PrivateType ChargeAccountService_Accessor;
[ClassInitialize]
public static void InitializeClass(Microsoft.VisualStudio.TestTools.UnitTesting.TestContext context)
{
ChargeAccountService_Accessor = new PrivateType(typeof(ChargeAccountService));
}
[TestMethod]
public void TestFixOMRHappySHA()
{
//TEST LOGIC
}
}
导致测试代理抛出以下异常:
Test Name: TestFixOMRHappySHA
Test FullName: ChargeAccountServiceTests.TestFixOMRHappySHA
Test Source: \ChargeAccountServiceTests.cs : line 22
Test Outcome: Failed
Test Duration: 0:00:00
结果消息:
方法 ChargeAccountServiceTests.InitializeClass 的签名错误。参数 1 的类型应为 Microsoft.VisualStudio.TestTools.UnitTesting.TestContext。
这个测试几天前已经开始了。测试项目目标是.NET 3.5
【问题讨论】:
-
你最近升级你的项目了吗?
-
我猜您引用的
Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll版本不正确。尝试删除并重新添加该引用。 -
这是一个 DLL 地狱问题。您使用的 TextContext 类与测试运行程序所期望的不同。类型标识不仅仅是命名空间和类型名称,它还包括它来自的程序集。您引用了错误的 UnitTestFramework 程序集版本。
标签: c# visual-studio unit-testing mstest vs-unit-testing-framework