在公司带一个敏捷开发的项目,试行多项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去。哈哈
分享到:
相关推荐
CruiseControl.NET-CCTray-1.8.4.0-Setup.exe
CruiseControl.NET 是 .NET 平台下的持续集成工具,CruiseControl (Java) 的 .NET 移植版本。CruiseControl是一个针对持续构建程序(项目持续集成)的框架,它包括一个email通知的插件,Ant和各种各样的CVS工具。Cruise...
CruiseControl.NET-1.4.4-Setup.exe
CruiseControl.NET-CCTray-1.5.6804.1-Setup
CruiseControl.NET-1.8.2.0-Setup.exe ccnet 服务端
**CruiseControl.net** 是一个开源的持续集成工具,它主要负责自动化软件开发过程中的各个环节,如代码版本控制、编译、代码质量检查、单元测试等。它的目标是提高开发效率,减少错误,并确保团队成员始终能获得最新...
Curisecontrol持续集成的客户端版,CruiseControl.NET-CCTray-1.4.1-Setup.exe
### 自动化集成CruiseControl.NET、NAnt与NUnit:构建持续集成环境 #### 概述 在软件开发过程中,回归测试是一个重要的但经常被忽视的环节。回归测试是指在对已有代码进行修改后重新运行之前的测试用例,以确保...
CruiseControl.NET-1.4-Setup
作为CruiseControl for Java的C#版本,CruiseControl.NET继承了其核心理念,即通过持续地、自动地构建项目来确保代码质量,并尽早发现潜在问题。 ### 持续集成概念 持续集成是一种软件开发实践,要求开发人员频繁...
**使用CruiseControl.Net进行持续集成** 持续集成(Continuous Integration,CI)是软件开发过程中的一个关键实践,它强调开发人员频繁地将代码更改合并到主分支,以便尽早发现并解决潜在的问题。CruiseControl.Net...
CruiseControl 安装包,配合MSbuild 和Wix 可进行自动发布版本,在cc.net 中进行各种参数的配置,开发工程的源代码部分要求必须有一个.wixproj.
CruiseControl.NET-1.8.4.0
用于检测项目是否编译成功的客户端软件,开发网站或者软件项目,自动检测项目的当天是否出错了。
在这个场景中,我们关注的是使用Microsoft的.NET框架和Visual SourceSafe 2005(VSS 2005)进行协同开发。以下是一些关于这两个核心组件及其在团队开发中的应用的关键知识点: 1. **.NET Framework**:这是一个由...
CruiseControl.NET-CCTray-1.8.2.0-Setup.exe ccnet每日构建客户端
CruiseControl.NET CruiseControl.NET是用于.NET平台的自动化连续集成服务器。 它是CruiseControl for Java的C#端口。 发行版 可以从下载高达1.8.5的版本。 发展 要求 视窗 Visual Studio 2019或Visual Studio ...