相关疑难解决方法(0)

VS2012和TFS2012单元测试主要问题

我们正在使用VS2012和TFS2012并为我们的代码编写单元测试.我们希望报告代码覆盖率,并在测试应用程序的单元测试中使用.config文件,以及日志记录,MS企业库设置等的其他一些设置.


App.config无法在新的测试框架中工作

MS的新测试框架应该很棒,但对我来说它根本不是那么好.当新框架不再使用配置文件时,我想如何在配置文件中设置一些基本配置?

我们遇到混合模式dll的问题,并找到了一个修复:添加

<startup useLegacyV2RuntimeActivationPolicy="true"> 
Run Code Online (Sandbox Code Playgroud)

到app.config.但这对我们的单元测试项目不起作用.因为配置文件不再存在了.搜索互联网提出了一个解决方案

' Visual Studio .Net 4.5测试项目中.Net 2.0混合模式程序集问题 '

这意味着在程序文件目录中编辑Visual Studio 11本身的文件,我认为这不是一个很好的解决方案....

一些基本的appsetting怎么样?我怎么设置这个?


不要使用.testSettings文件

MS也不推荐使用旧的.testsettings文件,因为使用了旧的测试框架.如果我使用.testsettings文件,我无法在我的tfs2012构建服务上设置代码覆盖率.

另一个问题是我们的代码需要一个dll(system.data.sqlite.dll),但只有在运行时单元测试代码才需要这个dll.因此不需要参考.我们使用testsettings文件中的Deployment选项卡修复了此问题.但是在新框架中,您不应该使用testsettings文件.如果需要文件,则具有[deploymentitem]属性.但deploymentitem属性只能用于[testmethial]或[assemblyinitialize]方法上的[testmethod].但是我们的代码需要[testinitialize]方法中的dll.所以没有办法让dll到位.

只是在[assemblyinitialize](或testinitialize)方法中使用File.Copy复制它不起作用.

将dll作为文件添加到项目中,并将"复制到输出目录"设置为"始终复制",如" 使用.runsettings文件配置单元测试 "中所述,也不起作用.

这个(真的不是很好的)解决方案是添加dll作为引用,然后实例化一个类,并且不要使用它.这样就需要dll,否则就不会构建,因此dll会将自己部署到正确的目录中.


如何解决我的问题? - 我想在单元测试中使用配置文件. - 我想在'assemblyinitialise'和/或'classinitialize'方法中部署一些neede文件. - 我希望在我的TFS2012每晚构建启用代码覆盖率.

unit-testing visual-studio-2012 tfs2012

12
推荐指数
1
解决办法
5182
查看次数

CS1684引用类型System.Windows.Input.ICommand声称它在'xxx'中定义但无法找到

我试图开始使用VS 2012而不是VS 2010,但是在安装VS 2012和.Net 4.5之后.我在VS 2010中遇到代码分析错误说在读取模块'xxx_Accessor'时遇到以下错误:无法解析类型引用:[System,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089] System.Windows. Input.ICommand.

我猜这与.Net 4.5移动了ICommand接口的位置有关,但有没有解决方案,以便代码分析再次运行?我已经尝试将ignorestrongassemblynames添加到测试项目的项目文件和正在测试的项目中,但这没有用.

code-analysis visual-studio-2010 icommand .net-4.5 visual-studio-2012

5
推荐指数
1
解决办法
2530
查看次数