代码之家  ›  专栏  ›  技术社区  ›  ctford

南特不做修女测试

  •  4
  • ctford  · 技术社区  · 15 年前

    我正在使用nunit 2.5和nant 0.85来编译.net 3.5库。因为Nant 0.85不支持.NET 3.5,所以我在Nant.exe.config中添加了3.5框架的条目。

    “mylibrary”构建,但当我命中“test”目标来执行nunit测试时,它们似乎都没有运行。

    [nunit2] Tests run: 0, Failures: 0, Not run: 0, Time: 0.012 seconds
    

    以下是我的nant.build文件中有关构建和运行测试的条目:

    <target name="build_tests" depends="build_core">
        <mkdir dir="Target" />
        <csc target="library" output="Target\Test.dll" debug="true">
            <references>
                <include name="Target\MyLibrary.dll"/>
                <include name="Libraries\nunit.framework.dll"/>
            </references>
            <sources>
                <include name="Test\**\*.cs" />
            </sources>
        </csc>
    
    </target>
    
    <target name="test" depends="build_tests">                
        <nunit2>
            <formatter type="Plain" />
            <test assemblyname="Target\Test.dll" />
        </nunit2>
    </target>
    

    我是否需要注意一些版本控制问题?test.dll在nunit GUI中运行良好。

    肯定会找到测试dll,因为如果我移动它,会得到以下错误:

    执行测试失败。如果不是使用nunit 2.2.8.0构建程序集… 无法加载文件或程序集“test”或其依赖项之一…

    如果有人能给我指明正确的方向或描述他们遇到的类似情况,我将不胜感激。

    编辑 从那以后,我用nant 0.86测试版1进行了测试,同样的问题也出现了。

    3 回复  |  直到 14 年前
        1
  •  9
  •   Nick Meldrum    14 年前

    nunit2-nant任务仍然被硬编码以使用nunit2.2库。

    参见文档: http://nant.sourceforge.net/release/latest/help/tasks/nunit2.html

    “使用nunit v2.2框架运行测试”

    您可以通过程序集绑定重定向来解决这一问题,但是我认为建议只使用nant<exec>任务并直接调用nunit 2.5控制台运行程序。

    例如。:

        <!-- Run Unit Tests under NUnit 2.5 -->
        <exec program="${LibraryPath}\NUnit\2.5.7\nunit-console.exe">
            <arg value="${SourcePath}\ProjectName.Tests\bin\Release\ProjectName.Tests.dll" />
        </exec>
    

    反正简单多了。

    我通过TeamCity运行这个,并且单元测试输出看起来仍然正常。

        2
  •  1
  •   The Chairman    15 年前

    我没有手动编辑nant 0.85配置的经验。也许你应该试试 latest nightly 来自Nant(0.86β2)。使用此版本,我们构建所有的.NET 3.5项目,没有任何投诉。

        3
  •  0
  •   Grant Palin Bob King    15 年前

    对于健全性检查,您是否确保在测试类中包含适当的nunit属性?这些属性是由nunit确定哪些类是测试夹具以及哪些方法是测试用例的钩子。

    在过去,我犯了一个错误,不包括适当的属性,并且运行测试时没有明显的结果。这是一件简单的事情,但要确保。