MSTest异常:单元测试适配器抛出异常:成员未解析类型

问题描述 投票:8回答:6

在我的项目中,我使用Microsoft的单元测试框架编写测试。当我从Visual Studio运行它们时,我的所有测试都通过了,但是当我从MSBuild运行测试时,所有测试都失败并显示以下erorr消息:

单元测试适配器引发异常:未解析成员SomeType,SomeAssembly Version = assemblyVersion,Culture = neutral,PublicKeyToken = ..

未找到的程序集是所有项目引用的第三方程序集。

构建脚本由TFS使用,所以我给出了以下几行:

<RunTest>true</RunTest>

<ItemGroup>
    <MetaDataFile Include="$(BuildProjectFolderPath)myproject.vsmdi">
        <TestList>CI_Tests</TestList>
    </MetaDataFile>
</ItemGroup>

我发现this post显示了这个问题的解决方案,但不幸的是我无法在TFS服务器上创建文件。

救命!

unit-testing msbuild mstest
6个回答
3
投票

要检查的第一件事是将此程序集复制到msbuild运行测试的文件夹中。由于某些历史原因,您可能会在bin / Debug文件夹中有一个副本,但在项目中未正确设置依赖项。


9
投票

我在单元测试中遇到了同样的问题。上面的链接文章表明问题是VSTS导致在线程的CallContext中复制某些对象。

对于它的价值,在我的情况下,问题是我在线程的CallContext中手动放置了一个对象,这导致了这个异常。我能够通过清除TestCleanup例程中的CallContext来解决这个问题。我没有必要在任何地方更改任何文件。


4
投票

我也遇到了同样的问题,但我在构造函数中为基础测试类执行了StructureMap初始化。

通过将调用从构造函数移动到[TestInitialize]方法,我能够解决问题。我还确保[TestCleanUp]方法处理创建的StructureMap容器​​。在此MSBuild(2010)之后将运行测试而不会引发此错误。


1
投票

有这个错误

Unit Test Adapter threw exception: 
Type is not resolved for member 'NHibernate.HibernateException,NHibernate

事实证明,问题是在测试的静态构造函数中抛出异常。它与消息的外观完全无关,并且在使用BuildSchema创建数据库期间发生。

MSTest的非常无法提供的错误信息让我花费了很多时间和压力。在我们的TODO列表中将迁移更像NUnit。


0
投票

This article用这个错误解决了我的问题:

回顾一下,My Custom Exception是在测试执行的早期阶段抛出的。包含它的DLL尚未加载,因此单元测试适配器确实无法访问它。


0
投票

在测试程序集时发生的事件已经加载了标记为[Serializable]的类的实例。通过派生MarshalByRefObject来解决此问题,因此不再尝试从mstest主机进行反序列化。

© www.soinside.com 2019 - 2024. All rights reserved.