2015-12-02 1 views
0

Мы написали универсальное приложение Windows и хотим использовать SpecFlow для тестирования. Мы создали тестовый проект Universal Windows. Попытка установить пакет SpecRun.SpecFlow NuGet терпит неудачу с этой ошибкой:SpecRun.SpecFlow 1.2.0 несовместим с UAP, Version = v10.0

... 
Installing SpecRun.Runner 1.2.0. 
Installing SpecFlow 1.9.0. 
Installing SpecRun.SpecFlow 1.2.0. 
SpecRun.SpecFlow 1.2.0 is not compatible with UAP,Version=v10.0. 
SpecFlow 1.9.0 is not compatible with UAP,Version=v10.0. 
Some packages are not compatible with UAP,Version=v10.0. 
SpecRun.SpecFlow 1.2.0 is not compatible with UAP,Version=v10.0 (win10-arm). 
SpecFlow 1.9.0 is not compatible with UAP,Version=v10.0 (win10-arm). 
Some packages are not compatible with UAP,Version=v10.0 (win10-arm). 
SpecRun.SpecFlow 1.2.0 is not compatible with UAP,Version=v10.0 (win10-arm-aot). 
SpecFlow 1.9.0 is not compatible with UAP,Version=v10.0 (win10-arm-aot). 
Some packages are not compatible with UAP,Version=v10.0 (win10-arm-aot). 
    etc. 

Как решить эту проблему? Требуются ли конкретные параметры проекта? Или может кто-то уверен, что SpecFlow действительно несовместим? SpecFlow documentation довольно неспецифичен относительно поддерживаемых платформ.

Установленный пакет:

enter image description here

ответ

2

SpecFlow и SpecRun.SpecFlow не поддерживают UAP напрямую.

Как решить эту проблему, вы можете сделать следующее:

  • Создание Портативный библиотеки классов (PCL) и установить цели для .Net 4.5.1 и Windows, универсальный 10,0
  • Extract код, который вы хотите проверить и поместите его в PCL Но будьте осторожны, у вас нет полной версии .NET Apis . Только подмножество целевых объектов, выбранных для PCL.
  • Добавить ссылку на PCL в вашем UAP
  • Создание проекта модульного теста и добавить ссылку на PCL
  • Добавить SpecRun.SpecFlow в Test Unit Project

Теперь вы можете использовать SpecFlow и SpecRun.SpecFlow в проекте тестирования модулей.

2

NuGet пакет SpecRun.SpecFlow 1.2.0 содержит только сборки для .NET 3.5, так что вы не можете установить его в проект Универсальное приложение (УАП).

+0

Спасибо, Мэтт! Этот пакет рекомендуется для любого проекта тестирования .NET, поэтому, если эти пакеты ограничены до 3,5, какой правильный подход получить, чтобы SpecFlow был установлен для проектов, не относящихся к 3.5? –

+1

Я использовал SpecFlow с .NET 4.5. Я думаю, что Мэтт просто говорит, что вы не можете использовать его с проектом «Universall App Project». –