升级到v2后,xunit无法发现测试

时间:2015-04-14 16:42:21

标签: xunit

升级到xunit2并遵循迁移指南(http://xunit.github.io/docs/test-migration.html)后,在我的项目中发现测试时出现以下错误:

------ Discover test started ------ [xUnit.net 00:00:00.0701819] Exception discovering tests from MyLibrary.Tests.dll: System.MissingMethodException: Constructor on type 'Xunit.Sdk.TestFrameworkProxy' not found. at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) at System.Activator.CreateInstance(String assemblyString, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo, StackCrawlMark& stackMark) at System.Activator.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo) at System.AppDomain.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes) at System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes) at System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes) at Xunit.RemoteAppDomainManager.CreateObject[TObject](String assemblyName, String typeName, Object[] args) at Xunit.Xunit2Discoverer..ctor(ISourceInformationProvider sourceInformationProvider, IAssemblyInfo assemblyInfo, String assemblyFileName, String xunitExecutionAssemblyPath, String configFileName, Boolean shadowCopy, String shadowCopyFolder) at Xunit.XunitFrontController.CreateInnerController() at Xunit.XunitFrontController.get_InnerController() at Xunit.Runner.VisualStudio.TestAdapter.VsTestRunner.DiscoverTests[TVisitor](IEnumerable`1 sources, IMessageLogger logger, Func`3 visitorFactory, Action`3 visitComplete, Stopwatch stopwatch) ========== Discover test finished: 0 found (0:00:00.2454142) ==========

我没有调试testrunners或xunit的经验,所以我不知道在哪里看。我希望有人之前遇到过这个问题并且可以给出快速回答,但我的google-fu什么也没有显示。

我不知道哪些信息可以用来追踪这个问题,所以我会按照人们的要求添加内容。

2 个答案:

答案 0 :(得分:10)

来自测试运行者文档:If you're having problems discovering or running tests, you may be a victim of a corrupted runner cache inside Visual Studio

删除%TEMP%\VisualStudioTestExplorerExtensions似乎解决了这个问题。

参考:http://xunit.github.io/docs/running-tests-in-vs.html

答案 1 :(得分:0)

确保您已安装Xunit和Xunit.Runner.VisualStudio nuget软件包