VSTS构建测试步骤异常:测试无法执行,类型解析失败求助
看起来你在VSTS构建的测试环节碰到了MSTest适配器的类型解析问题,我来帮你梳理几个常见的排查和解决方向:
确认测试项目的依赖引用是否完整
首先得确保你的测试项目已经正确引用了包含Sfa.Sfs.AgeReports.Domain程序集的项目或者NuGet包。如果是项目引用,要检查VSTS构建过程中这个依赖项目有没有被正常编译,而且输出的.dll文件是否被复制到了测试项目的输出目录里。你可以在构建完成后的工件里,查看测试输出文件夹下是否存在Sfa.Sfs.AgeReports.Domain.dll。检查测试任务的工作目录配置
在VSTS的测试步骤中,确认测试运行的工作目录是不是测试项目的输出目录。有时候工作目录设置不对的话,测试执行器会找不到依赖的程序集。你可以去测试任务的「高级」设置里查看或调整这个路径。排查序列化相关的配置问题
这个错误经常出现在涉及序列化的场景里——比如你的测试用到了需要序列化的对象,或者MSTest内部的序列化逻辑触发了这个问题。如果AgeReportDefaultAgeReportDomainFactory类型实现了ISerializable接口,得确保所有相关的依赖类型都能被正确加载,或者检查有没有遗漏的序列化属性配置。另外,也可以试试在测试项目的配置文件里添加程序集绑定重定向,保证版本匹配。清理缓存后重新构建
有时候本地或者构建服务器上的旧缓存会导致程序集版本不匹配。你可以在VSTS构建步骤里加一个「清理」任务,先清空之前的构建输出,再重新编译整个解决方案,避免旧文件干扰。验证MSTest适配器版本兼容性
检查测试项目里用的MSTest.TestAdapterNuGet包版本,是不是和VSTS构建代理上的版本兼容。可以尝试更新到最新的稳定版,或者回退到一个已知能用的版本,看看能不能解决问题。
你遇到的错误信息:
2018-04-17T06:11:35.6527068Z ##[error]Error: An exception occurred while invoking executor 'executor://mstestadapter/v1': Type is not resolved for member 'Sfa.Sfs.AgeReports.Contexts.AgeReportDefaultAgeReportDomainFactory,Sfa.Sfs.AgeReports.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
内容的提问来源于stack exchange,提问作者Aaron Robinson

