无法使用ClassInitialize方法执行类

Ran*_*dom 5 c# unit-testing mstest visual-studio vs-unit-testing-framework

我面临一个尴尬的局面 - 所有具有[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
    }
}
Run Code Online (Sandbox Code Playgroud)

导致测试代理抛出以下异常:

Test Name:  TestFixOMRHappySHA
Test FullName:  ChargeAccountServiceTests.TestFixOMRHappySHA
Test Source:    \ChargeAccountServiceTests.cs : line 22
Test Outcome:   Failed
Test Duration:  0:00:00
Run Code Online (Sandbox Code Playgroud)

结果消息:

方法ChargeAccountServiceTests.InitializeClass具有错误的签名.参数1应为Microsoft.VisualStudio.TestTools.UnitTesting.TestContext类型.

这个测试几天前就已经开始了.测试项目目标是.NET 3.5

Ran*_*dom 2

最后,通过应用我发现的技巧组合,我解决了这个问题:

  1. MSTest 项目之一的目标是 4.0,而其他项目的目标是 3.5 - 所以我必须更改它并重建假货。
  2. 我删除了 Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 引用并将其再次添加到我的所有测试项目中
  3. 我在我的解决方案中发现了旧版本的 vsdmi 文件 - 已删除
  4. 我删除并创建了 Local.testsettings
  5. 重启VS