自动化测试,构建和部署

时间:2010-04-01 10:32:40

标签: .net deployment build-process continuous-integration

我有视觉工作室团队套件2008.我无法满足设置TFS的要求,所以我在VSTS中使用TortoiseSvn和VisualSvn作为我的版本控件。

我需要系统设置来执行以下操作:

我需要能够创建和跟踪工作项。 当对VSTS中处理的当前项目进行更新时,更新将被提交回版本控制。将运行测试以查看更新不会破坏应用程序。如果更新有问题,将报告给开发人员。如果应用程序(clickonce应用程序)没有问题,它将自动构建,混淆并部署到ftp服务器。

我从未使用版本控制,构建服务器,自动化测试和持续集成。我需要知道这类系统需要采取什么措施。

我不知道我应该使用哪个组合/堆栈:CruiseControl.net,TeamCity,Hudson,NAnt,NUnit,MsTest,Trac,BugTracker.net,Ndepend,VisualSvn Server,Perforce,Msdeploy,MSBuild,SCM。

我想要一些免费/开源的东西,并且相对容易设置和使用。

请建议一个符合我需求的设置。

任何帮助表示赞赏

2 个答案:

答案 0 :(得分:1)

工作项是VSTS的一部分,Microsft TFS在其他源控制系统中没有任何工作项概念。

设置完整的连续集成CI系统的最简单方法是:

SVN-1.4.6-SETUP.EXE

将Subversion安装到D:\ SVN

创建源代码管理存储库:

D:\ SVN \ bin> svnadmin创建D:\ SVN \ repos

将您的来源添加到SVN:

D:\ SVN \ bin> svn import D:\ webroot file:/// d:/ SVN / repos / webroot -m“initial import”

这会将D:\ webroot和所有子目录导入子目录“webroot”中的存储库,以获取更多信息,如何将SVN设置为服务:http://martin-lindhes.blogspot.com/2006/09/how-to-run-subversion-140-in-windows.html

允许所有访问权限打开svn配置文件:

d:\ SVN \回购\ CONF \ svnserve.conf的

取消注释(删除/#):

auth-access = write

您应该让源控制服务器在允许所有访问权限的情况下运行。请注意,无法跟踪谁正在以这种方式更改代码,对于更复杂的方案google:subversion role access

如何通过3个步骤获取源代码:

  1. 请从此处安装源代码管理客户端: tortoisesvn.net/downloads

  2. 然后创建要在其中签出代码的空目录,例如C:\ code \ source

  3. 右键单击C:\ code \ source目录并选择“SVN Checkout”,提供存储库URL:

  4. svn://yourserver.com:48000 / webroot

    并选择所有其他默认选项。

    单击确定,您将获得最新代码。

    下载并安装CruiseControl:sourceforge.net/projects/ccnet /

    打开CC配置文件:

    C:\ Program Files \ CruiseControl.NET \ server \ ccnet.config  这是一些示例配置:

     <cruisecontrol>
      <project name="eSeismic CI build and Test System">
      <sourcecontrol type="svn">
        <trunkUrl>svn://yourserver.com:48000/webroot</trunkUrl>
        <workingDirectory>c:\dev\ccnet</workingDirectory>
      </sourcecontrol>
    
        <triggers>
    
          <intervalTrigger seconds="3600" />
    
        </triggers>
    
        <tasks>
          <devenv>
            <solutionfile>C:\Code\source\SomeSolutionNameHere.sln</solutionfile>
            <configuration>Debug</configuration>
            <buildtype>Build</buildtype>
            <executable>C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com</executable>
            <buildTimeoutSeconds>60</buildTimeoutSeconds>
          </devenv>
    
    
          <nunit path="C:\nunit\bin\nunit-console.exe">
            <assemblies>
              <assembly>C:\someproject...\bin\Debug\someunittestdll....Test.dll</assembly>
            </assemblies>
          </nunit>
        </tasks>
    
    
        <publishers>
          <statistics />
          <xmllogger />
        </publishers>
    
      </project>
    
    </cruisecontrol>
    

    任何问题都可以阅读帮助:ccnet.sourceforge.net/CCNET /

    我假设您使用Nunit进行测试。

    Simples。

答案 1 :(得分:-1)

我相信Valko应该得到Mike的回复,我使用了类似的一系列步骤,并使用了ClearCase和SVN存储库,Cruise Control就是您的答案。请把这个给Valko