Nunit 如何让CruiseControl.NET/nant运行所有使用.Test后固定的Unittest项目?

Nunit 如何让CruiseControl.NET/nant运行所有使用.Test后固定的Unittest项目?,nunit,cruisecontrol.net,nant,nunit-console,Nunit,Cruisecontrol.net,Nant,Nunit Console,在我们的持续集成设置中,我想设置CruisControl.NET来自动运行我们所有的单元测试。但是,我不想在配置中单独指定每个单元测试dll 所有的unittest项目都用.Test(而所有的非unittest项目都不是)。如何配置CruiseControl.NET以运行这些项目中的所有单元测试(我使用的是CruiseControl.NET的v1.5.7256.1) 我当前的配置尝试: <nunit> <path>$(nunit.path)</path>

在我们的持续集成设置中,我想设置CruisControl.NET来自动运行我们所有的单元测试。但是,我不想在配置中单独指定每个单元测试dll

所有的unittest项目都用
.Test
(而所有的非unittest项目都不是)。如何配置CruiseControl.NET以运行这些项目中的所有单元测试(我使用的是CruiseControl.NET的v1.5.7256.1)

我当前的配置尝试:

<nunit>
    <path>$(nunit.path)</path>
    <assemblies>
        <assembly>$(working.dir)\**\*.Test.dll</assembly>
    </assemblies>
</nunit>

$(nunit.path)
,或其他元素或

我在管理构建环境方面没有太多经验,我正在处理一个现有配置,其中每个程序集都是以以下方式单独指定的

<nunit>
    <path>$(nunit.path)</path>
    <assemblies>
        <assembly>$(artifact.dir)\test1.dll</assembly>
        <assembly>$(artifact.dir)\test2.dll</assembly>
    </assemblies>
</nunit>

$(nunit.path)

I指定元素的类型为String[]。我不知道那是什么意思。。。但从这个例子来看,它似乎只是意味着它必须包含一个单数形式的同名子元素列表



我意识到这个问题有点失控了。。。当整个问题解决后,我将尝试以这种格式编辑它,以便以后对其他人有用。

如果您要使用nunit控制台,这是一个示例配置



这还没有经过测试,可能有更好的方法对其进行蒙皮,但它有望为您提供一个起点。

如果您要使用nunit控制台,这是一个示例配置



这还没有经过测试,可能有更好的方法可以剥皮,但它有望为您提供一个起点。

可能不是您想听到的,但nunit任务被弃用,取而代之的是nunit2任务。但是,我建议您在最新版本的nunit中使用nunit控制台命令行选项,并将筛选后的文件列表作为参数传入。如果这是你的选择,我可以提供一个例子。@Mightymuke这是我的选择。我真的很欣赏这个例子。不过我想知道,不推荐的api似乎与我正在使用的api不同。我看不到和元素在这里的解释。我看的是错误的文档吗?您使用的是?如果是这样的话,您可能会使用,但我的首选仍然是nunit控制台选项。可能不是您想听到的,但nunit任务已被弃用,取而代之的是nunit2任务。但是,我建议您在最新版本的nunit中使用nunit控制台命令行选项,并将筛选后的文件列表作为参数传入。如果这是你的选择,我可以提供一个例子。@Mightymuke这是我的选择。我真的很欣赏这个例子。不过我想知道,不推荐的api似乎与我正在使用的api不同。我看不到和元素在这里的解释。我看的是错误的文档吗?您使用的是?如果是这样的话,您可能会使用,但我的首选仍然是nunit控制台选项。我将尝试此选项并向您报告。很抱歉延迟,这有点忙。我用您的xml替换了我的xml,但它似乎不匹配。我得到以下异常:
无法从配置文档实例化CruiseControl项目。配置文档可能缺少正确填充CruiseControl配置所需的Xml节点。无法加载数组项“属性”-无法将值为“”的对象的System.String类型转换为ThoughtWorks.CruiseControl.Core.ITask类型。
。此xml位于
元素内。我还尝试将
元素移到
元素外。然后我得到异常:
检测到未使用的节点:
。我将继续努力使这一点正确,我会报告回来,一旦我得到它的权利。啊,对不起,这是一个南特脚本(我认为你发布了一个南特片段的基础上,你已经包括了链接)。您仍然可以通过调用a来实现这一点,但我也会看看我是否对ccnet任务做过类似的操作。您可能会认为NAnt就像一个简单的脚本引擎,而ccnet build config文件只是配置插件。不是100%准确,但足够接近。我倾向于用NAnt脚本完成所有繁重的工作,并将它们简单地插入cc.net。似乎是相当全面的(虽然有点过时)。我会尝试这个,并报告回来。抱歉的延误,这是有点忙。我用您的xml替换了我的xml,但它似乎不匹配。我得到以下异常:
无法从配置文档实例化CruiseControl项目。配置文档可能缺少正确填充CruiseControl配置所需的Xml节点。无法加载数组项“属性”-无法将值为“”的对象的System.String类型转换为ThoughtWorks.CruiseControl.Core.ITask类型。
。此xml位于
元素内。我还尝试将
元素移到
元素外。然后我得到异常:
检测到未使用的节点:
。我将继续努力使这一点正确,我会报告回来,一旦我得到它的权利。啊,对不起,这是一个南特脚本(我认为你发布了一个南特片段的基础上,你已经包括了链接)。您仍然可以通过调用a来实现这一点,但我也会看看我是否对ccnet任务做过类似的操作。您可能会认为NAnt就像一个简单的脚本引擎,而ccnet build config文件只是配置插件。不是100%准确,但足够接近。我倾向于用NAnt脚本完成所有繁重的工作,并将它们简单地插入cc.net。看起来相当全面(尽管有点过时)。
<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
    <project name="MyProject">
        <!-- whole bunch of other elements -->
        <tasks>
            <nunit>
                <!-- see above -->
            </nunit>
        </tasks>
    </project>
</cruiscontrol>