Я пытаюсь настроить проект C #, который будет запускать тесты xUnit при сборке, чтобы я мог использовать их в непрерывной интеграции.У меня есть обычный проект, тестовый проект библиотеки классов с использованием xUnit и мой тестовый проект.Из всего, что я прочитал, похоже, что я должен быть в состоянии заставить это работать, выполнив это в проекте тестового бегуна:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Test"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
[auto-created project stuff]
<UsingTask AssemblyFile="xunit.runner.msbuild.dll"
TaskName="Xunit.Runner.MSBuild.xunit" />
<Target Name="Test">
<xunit Assembly="$(MSBuildProjectDirectory)\..\OnePageOneDb.Tests\bin\Debug\OnePageOneDb.Tests.dll" />
</Target>
</Project>
Когда я строю свое решение после изменения (обычно редактируя .csprojфайл), я получаю это:
Не удалось загрузить задачу «Xunit.Runner.MSBuild.xunit» из сборки C: \ Users [myusername] \ Code \ OnePageOneDb \ OnePageOneDb.TestRunner \xunit.runner.msbuild.dll.Не удалось загрузить файл или сборку 'file: /// C: \ Users [myusername] \ Code \ OnePageOneDb \ OnePageOneDb.TestRunner \ xunit.runner.msbuild.dll' или одну из ее зависимостей.Система не может найти указанный файл.Убедитесь, что объявление правильное, что сборка и все ее зависимости доступны и что задача содержит открытый класс, который реализует Microsoft.Build.Framework.ITask.
Даже если я добавлю xunit.runner.msbuild.dll и xunit.runner.utility.dll к проекту в расположении, к которому он относится, я получаю это сообщение.Но если я строю снова без изменений, я последовательно получаю следующее:
Задача "xunit" не найдена.Проверьте следующее: 1.) Имя задачи в файле проекта совпадает с именем класса задачи.2.) Класс задачи является «общедоступным» и реализует интерфейс Microsoft.Build.Framework.ITask.3.) Задача правильно объявлена в файле проекта или в файлах * .tasks, расположенных в каталоге «C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319».
Но я проверил все эти вещи:
- Класс задачи в xunit.runner.msbuild.dll -
Xunit.Runner.MSBuild.xunit
(и xunit - строчная буква в имени класса). - Класс задачи наследуется от Task, который реализует ITask.
- Так что, возможно, есть проблема в UsingTask, но я не знаю, что это такое.
(я также думал, чтопроблема может заключаться в том, что xunit.runner.msbuild.dll нацелен на .NET 2.0, и я использую VS 2010, но я заново создал проект для запуска тестов в .NET 2.0, и проблема сохраняется.)
Можеткто-нибудь помочь?