使用cruiseControl.net + TestDriven.net + TypeMock.net + vs2005 + vss2005进行敏捷开发遇到的问题(已解决!!)

在公司带一个敏捷开发的项目,试行多项XP的实践,搭建了continuous integration(持续集成,CI)服务器。使用的是ThoughtWorks的CruiseControl.net。基于敏捷的原则:够用即可。所以编译使用的就是visual studio 2005中文版,tdd使用了TestDriven.NET-2.4.2048_Personal版,test runner是用的TestDriven.NET-2.4所带的nunit 2.4。由于是完全的oo方式,系统分为多个层次,为了隔离层次之间的依赖关系,在测试中使用了TypeMock3.7.1。源代码管理使用visual sourcesafe2005。另外,还在vs2005中安装了resharper2.5的插件。目前出现了这样的问题:使用TypeMock的测试代码,在本地可以正确编译并通过。但是上传到cc.net服务器后,与typeMock相关的测试用例就不能通过了。提示:
TypeMock.TypeMockException : *** TypeMock.NET is not enabled, to enable do one of the following: 1. run 'mocking_on.bat' before running the tests 2. run tests via TMockRunner.exe 3. use TypeMockStart tasks for MSBuild or NAnt 4. set Tools->Enable TypeMock.NET from within Visual Studio For more information consult the documentation (see Running topic)
分析原因:在cc.net的配置文件中,有关nunit的部分,调用了nunit的nunit-console.exe,不知道为什么不能找到对TypeMock的引用。
这个应该怎么解决呢?
看了看TypeMock的帮助,决定切换到使用MsBuild来对解决方案进行编译,但是现在ThoughtWorks提供的关于操作MsBuild的日志的dll不能下载了,不知道为什么,而且在这个页面中,ThoughtWorks自己的cc.net服务器上,关于这个dll的build是失败的,不知道是发生了什么事情。


ps:typeMock.net与vs2005的结合好像是有问题,在TypeMock的官方论坛中,好多与此相关的问题,我本地的vs在加载typeMock的时候,也提示:

ps2: 还有奇怪的现象:在同事的机器上,用nunit的gui来对代码进行测试,是没有问题的。但是在我的机器上,就是不行,错误现象同上。是不是由于我们之间的vs的版本不同?我的是中文版,他的是英文版的……

问题解决!!哈哈!!
今天到公司后,想起来用"typemock.net+cruiseControl.net"作为关键字搜搜看,结果又是在TypeMock的官方论坛里面找到了答案。有个牛人自己根据cc.net的task接口,写了一个plugin。真是让我pf的五体投地啊!!
我们只需要把代码自己copy过来,编译成dll,然后再在cc.net的config里面加一个<task>的子节点就ok了。
下面是原文的url:http://www.typemock.com/community/viewtopic.php?p=1588&sid=2d8c7086c2f1cbf2337b52e9679559fe
页面里面提供了代码的下载,为了防止页面失效,我把自己的放出来吧。
点此下载plugin的源代码。
我的配置节:
<tasks>
    <devenv>
   [...省略]    
   </devenv>
    <nunit>
     [...省略]  
    </nunit>
    <TMockRunner>
      <nunitPath>d:\TestDriven.NET2.0\NUnit\2.4\nunit-console.exe</nunitPath>
      <runnerPath>c:\TypeMock\TypeMock.NET\TMockRunner.exe</runnerPath>
      <assemblies>
     <assembly>f:\CI_SRC\[要测试的文件名称].dll</assembly>
      </assemblies>
    </TMockRunner>
   </tasks>
至此,这个基于CruiseControl.net的CI服务器的配置工作算是告一段落了。不过使用vss进行源代码管理还是感觉很不爽,cc.net的文档里面也列举了vss的诸多罪状。看什么时候有时间,切换到subversion去。哈哈
posted on 2007-04-19 16:52  小熊bryan  阅读(2450)  评论(13编辑  收藏  举报