【问题标题】:Fails to execute classes with ClassInitialize method present无法执行存在 ClassInitialize 方法的类
【发布时间】: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


【解决方案1】:

最后,我通过应用我找到的提示组合解决了它:

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

【讨论】:

    【解决方案2】:

    从我对similar question 的回答中,我遇到了同样的问题,对我来说它起作用了

    1. 删除对 Microsoft.VisualStudio.QualityTools.UnitTestFramework 的引用
    2. 右键单击项目并选择“添加 > 单元测试...”,这会使用正确的版本恢复引用。

    【讨论】:

    • 这对我不起作用对我来说,我把我的答案放在值得一试的链接问题中。
    【解决方案3】:

    我有同样的错误,但 [AssemblyInitialize] 不是 [ClassInitialize]。

    删除对 Microsoft.VisualStudio.QualityTools.UnitTestFramework 的引用并重新添加 v10.0.0.0 为我解决了这个问题。

    事实证明,我的不同测试项目引用了不同的版本,并且使它们都一致地指向 10.0.0.0 解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      • 2017-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多