<nunit2> работает неправильно - PullRequest
2 голосов
/ 21 марта 2010

В моем скрипте nant есть следующая задача:

<nunit2 verbose="true">
            <formatter type="Plain" />
            <test assemblyname="${output}\Test.dll" appconfig="${project.src.root}\Test\Test.config"/>
</nunit2>

Test.config является следующим:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="nunit.framework" publicKeyToken="96d09a1eb7f44a77" culture="Neutral" />
        <bindingRedirect oldVersion="2.5.3.9345" newVersion="2.2.8.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Когда я запускаю эту задачу, я получаю сообщение о том, что не удалось загрузить nunit.framework Я знаю, что nunit не находится в GAC (не подписано строго). Должна ли Nunit быть в GAC для выполнения этой задачи?

Ответы [ 2 ]

0 голосов
/ 31 июля 2012

Настройте показ задач Nant с подробным выводом (часто это означает добавление «verbose = true» к применимым задачам) и посмотрите, сможете ли вы проверить пути, которые он пытается использовать для ссылки на nunit.framework.dll.

Весьма вероятно, что путь к nunit.framework.dll в вашем проекте является относительным путем, который может не работать при попытке запустить задачу из NAnt через командную строку. (например, если ваш .csproj вложен в папку, а ваш скрипт Nant - нет, или если вы перемещаетесь по выводам сборки до тестирования).

0 голосов
/ 18 мая 2010

Я указываю путь к моему двоичному файлу NUnit во время компиляции. Когда я вызываю nunit2, ссылка на структуру присутствует, и я не получаю эту ошибку. Это помогает?

<target name="unit.compile" depends="sharedClasses, helpers.compile" description="compiles the unit tests" >
    <copy todir="build" flatten="true">
        <fileset basedir="tools\NUnit-2.5.2.9222\framework">
            <include name="nunit.framework.dll" />
        </fileset>
    </copy>

    <csc target="library" output="build\${project::get-name()}.test.unit.dll" debug="${debug}">
        <sources>
            <include name="source\web\tests\unit\**\*.cs" />
            <exclude name="source\web\tests\unit\**\AssemblyInfo.cs" />
        </sources>

        <references basedir="build" >
            <include name="nunit.framework.dll" />
            <include name="Microsoft.Practices.EnterpriseLibrary.Common.dll" />
            <include name="Microsoft.Practices.EnterpriseLibrary.Data.dll" />
            <include name="${project::get-name()}.sharedClasses.dll" />
            <include name="${project::get-name()}.test.helpers.dll" />
        </references>
    </csc>
</target>
<target name="unit.test" depends="unit.compile, helpers.compile">
    <copy file="configuration\Web.Config"       tofile="build\${project::get-name()}.test.unit.dll.config" />
    <copy file="configuration\ui_list.config"   tofile="build\ui_list.test.config" />

    <nunit2>
        <test
            assemblyname="build\${project::get-name()}.test.unit.dll" 
               appconfig="build\${project::get-name()}.test.unit.dll.config"
        />
        <formatter type="Plain" />
    </nunit2>
</target>
...