我面临一个尴尬的局面 - 所有具有[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
答案 0 :(得分:2)
最后,我通过应用我发现的提示组合解决了它:
答案 1 :(得分:2)
从我对similar question的回答中,我遇到了同样的问题,对我而言,它起作用了
答案 2 :(得分:0)
我有同样的错误,但是对于[AssemblyInitialize]却不是[ClassInitialize]。
删除对Microsoft.VisualStudio.QualityTools.UnitTestFramework的引用并重新添加v10.0.0.0可以解决我的问题。
事实证明,我的不同测试项目都引用了不同的版本,并且使它们始终指向10.0.0.0,从而解决了该问题。