项目从VS2010 升 VS2012 遇到的代表性问题及解决
最近公司要把项目从使用VS2010 转成VS2012,开始以为是个很简单的事情,后来发现有点头疼。
现在问题解决了,发现主要有以下3个方面的问题
- 第三方组件,对2012的支持的技术问题
- VS2012本身的bug
- 本身代码潜在的问题
先解决第一个问题,主要是和第三方测试工具typemock有关,我的丹麦同事和typemock公司沟通了很多次和自己反复测试之后解决了问题
解决方案
上面提到的typemock小问题,也由以下方式解决了
I suggest you decorate the test class with [Isolated] instead of using it on each method or better yet use Isolated on the entire assembly.
In order to decorate assemblies with Isolated you should add
[assembly: Isolated()] to AssemblyInfo.cs which is the same as decorating each test method with Isolated.
下面解决第二个问题,VS2012本身bug
VS2010 LocalTestRun.restrunconfig 本来可以用目录的方式在,测试开始前拷贝一些文件到测试环境,如下
VS2012中 我发现需要的xml文件都没有拷贝到测试目录,于是试了下 直接指定文件如下居然可以了,我晕倒,不过这个bug在update2中解决了,我有试过
最后一个问题,看到直接奔溃的问题,说 agent process was stopped while the test was running, 如下
开始看到这种错误直接没头绪,下意识就是网上一通子搜,相关网页很少而且每个人解决的方式也是不一样的。不过听说是可能是多线程的问题,因为这种错误一般是测试运行时后台起的多线程挂掉了。
后来抱着试试看的心态,看了看Windows log,果然还找到一个相关错误。 然后直接对应到代码 呵呵 还真是线程问题。
具体怎么解决就不赘述,因为解决方法可以有很多种,关键知道是后台线程测试时有抛异常挂掉就行了。
最后看到全绿之后,我就开始写博客了 :)绿色令程序员有种莫名的骄傲,幸福和喜悦感~~