gpt4 book ai didi

svn - 如果提交日志中包含明确的词,则在 cc.net 上运行构建

转载 作者:行者123 更新时间:2023-12-04 20:51:19 25 4
gpt4 key购买 nike

我有以下系统:

  • svn - 控制版本
  • cc.net - 作为 ci 服务器
  • msbuild - 作为构建系统
  • nunit - 用于启动测试
  • webdriver - 用于网络测试。

  • 现在我的测试在每次提交后自动运行。但如果提交有评论 #runautotest (或其他),我希望我的测试运行。

    我调查了 cc.net 的触发器,但它是为了另一个目标。
    我试图找到一些关于 cc.net 解析日志的信息,但这没有积极的结果。

    我应该使用什么样的方法来解决我的问题?

    最佳答案

    在 ccnet 配置中,在项目中,在任务块的顶部:

    <modificationWriter>
    <filename>svn_mods.xml</filename>
    <path>c:\modsdir</path>
    </modificationWriter>

    这会将 SVN 修改写入文件。

    接下来在任务块中:
    <nant>
    <executable>c:\path_to_nant</executable>
    <buildFile>mybuildfile.build</buildFile>
    <targetList>
    <target>conditionally_run_nunit_tests</target>
    </targetList>
    </nant>

    这将在 modifywriter 任务之后运行 Nant 任务。

    conditionally_run_nunit_tests , 搜索文件 c:\modsdir\svn_mods.xml #runautotest .如果找到,请运行测试。如果你没有找到它,那么什么都不做。有多种方法可以解析 mods 文件。您可以使用 C# 脚本将整个文件读入一个字符串,然后调用包含 #runautotest 传递。

    以下代码是在 Nant 中使用 C# 脚本的示例。 SearchFile 打开一个文件,将它读入一个字符串并检查字符串中是否有一个值。它返回"is"或“否”。以下脚本未经测试。
    <property name="yesno" value="${ns::SearchFile("c:\modsdir\svn_mods.xml", "#runautotest")}"/>

    <script language="c#" prefix="ns">
    <references>
    <include name="System"/>
    <include name="System.IO"/>
    </references>
    <code>
    <![CDATA[
    [Function("SearchFile")]
    public static string SearchFile(string filepath, string token)
    {
    System.IO.StreamReader myFile = new System.IO.StreamReader(filepath);
    string myString = myFile.ReadToEnd();
    myFile.Close();
    if(myString.Contains(token)) return "yes";
    else return "no";
    }
    ]]>
    </code>
    </script>

    关于svn - 如果提交日志中包含明确的词,则在 cc.net 上运行构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10380377/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com