Ech*_*lon 5 nunit visual-studio-2008 visual-studio
我有一个包含我的主项目和使用NUnit的测试项目的解决方案.所有东西都编译但是当我运行NUnit时,我会在测试加载后得到以下异常,并且测试失败.我添加了主项目作为参考,我在外部工具设置中的NUnit参数中有$(ProjectDir)bin/Debug/$(TargetName)$(TargetExt),并带有一个空白的初始目录.
MyMainProjectTests.Database.TestAddDelete:
System.BadImageFormatException : Could not load file or assembly 'MyMainProject,
Version=1.1.1.0, Culture=neutral, PublicKeyToken=null' or one of its
dependencies. An attempt was made to load a program with an incorrect format.
TearDown : System.Reflection.TargetInvocationException : Exception has been
thrown by the target of an invocation.
----> System.BadImageFormatException : Could not load file or assembly
'ChickenPing, Version=1.1.1.0, Culture=neutral, PublicKeyToken=null' or one
of its dependencies. An attempt was made to load a program with an incorrect
format.
Run Code Online (Sandbox Code Playgroud)
在搜索了几个小时之后,我发现的唯一一件事就是VS2005中提到了/ bin和/ obj目录的一个错误,但提供的答案没有帮助.
有解决方案吗
Ped*_*dro 15
我没有将NUnit设置为外部工具,而是将单元测试项目设置为StartUp项目.在项目的"属性"屏幕中,将"开始操作"设置为"启动外部程序"并将其指向nunit.exe.在"开始选项"部分中,我在"命令行参数"框中指定了测试程序集(无需路径).此时,只需按下F5即可启动NUnit.
Ton*_*gan 11
使用nunit-x86.exe而不是nunit.exe作为跑步者.
一个更好的长期解决方案可能是购买ReSharper,其中包括一个更好的NUnit测试运行器,它完全集成到Visual Studio中.它会自动检测您的.NET项目类型(x68或x64).ReShaper带有大量其他功能,其中单元测试只是其中之一.他们的测试运行器还集成了他们的DotCover代码覆盖率分析器.
您可能会发现需要更高版本的Visual Studio才能使用ReSharper.最新版本适用于Visual Studio 2013社区版,您可以免费获得,但我知道您可能会遇到从这样一个相当古老的VS2005项目升级某些项目功能的问题.
我与ReSharper没有任何关系.
您的主项目是 .exe 还是 .dll?旧版本的 .NET 无法引用 .exe,因此这可能是问题所在。
在任何一种情况下,如果主程序集没有最终到达测试程序集可访问的某个位置(例如,在同一目录中),我预计会出现问题。您可以检查这一点,如果没有做到这一点,也许可以通过让 Visual Studio 将引用的(主)程序集复制到本地目录。
“尝试加载格式不正确的程序。” 让我想知道“缺少程序集”的理论是否正确,但在没有更多信息的情况下,这是我能想到的最好的猜测。
| 归档时间: |
|
| 查看次数: |
7039 次 |
| 最近记录: |