我有一个Windows Phone 8应用程序,我正在尝试进行单元测试。我在我的项目中添加了一个Windows Phone Unit Test App,并添加了对我的Windows Phone项目的引用。当我尝试在模拟器或我的设备中调试测试时,我得到一个FileNotFoundException。当它试图实例化TestExecutorServiceWrapper时,它在单元测试的MainPage.xaml.cs中出错。
好像我错过了一些参考文献,但我无法弄清楚我错过了什么。
异常消息:
找不到指定的模块。 (HRESULT异常:0x8007007E)
例外: {System.IO.FileNotFoundException:找不到指定的模块。 (来自HRESULT的异常:0x8007007E) 在System.StubHelpers.StubHelpers.GetWinRTFactoryObject(IntPtr pCPCMD) at vstest_executionengine_platformbridge.MessageTransmitter..ctor() 在Microsoft.VisualStudio.TestPlatform.TestExecutor.TestExecutorServiceWrapper..ctor() 在WinPhoneApp.UnitTests.MainPage..ctor()}
堆栈跟踪: 在System.StubHelpers.StubHelpers.GetWinRTFactoryObject(IntPtr pCPCMD) at vstest_executionengine_platformbridge.MessageTransmitter..ctor() 在Microsoft.VisualStudio.TestPlatform.TestExecutor.TestExecutorServiceWrapper..ctor() 在WinPhoneApp.UnitTests.MainPage..ctor()
答案 0 :(得分:0)
所以我没有发现我的测试项目有什么问题,但我确实让它工作了。我最终在我的项目中添加了一个新的Unit Test应用程序。我运行了添加到单元测试项目的默认单元测试。它运行正常,没有FileNotFoundException。所以我开始添加我的所有引用,包括NuGet引用,检查单元测试是否在每次更改时运行。然后,我逐一将旧单元测试应用程序中的每个类添加到新的单元测试应用程序中,并在每次更改时测试默认单元测试。将所有类添加到新测试项目后,我没有收到任何错误。
所以坏消息是我不知道是什么导致了最初的错误,但至少我让我的新单元测试项目有效。
答案 1 :(得分:0)
我也遇到了这个问题。我在这里找到了一些不错的信息:http://dotnetbyexample.blogspot.com/2013/06/x86arm-configuration-gotcha-in-windows.html
简短的故事:Windows Phone 8单元测试应用程序项目是一个特定于平台的项目(模拟器为x86,实际设备为ARM)。我的WP8项目是AnyCPU,所以当我添加测试项目时,我试图使测试项目AnyCPU与我的主要设置相匹配,这导致了这个错误。
添加用于测试手机项目的配置(如链接的博客帖子所示)解决了我的问题,我的测试现在运行良好。