Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 17.05.2020
Сообщений: 3
.NET 2.x

Автотесты, SpecFlow features, запуск из командной строки

17.05.2020, 18:47. Показов 2169. Ответов 4
Метки cmd (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Хочу поделиться с вами моей болью и попросить помощи, потому что я уже не знаю, что и придумать.
Автотесты на с#, со сценариями feature файлами через SpecFlow.
В начале была проблема, чтобы эти сценарии запускались через VS.
Перепробовали все формы зависимостей и версии, пока один товарищ мне не помог.
В итоге получилось следующее:

(на красное подчеркивание не обращайте внимание, это было сделано для другой цели).

но вот теперь возникла другая проблема.
Тесты нельзя запустить через консоль!
Пытаюсь написать bat файл,
все выглядит так
md D:\myDir
md D:\myDir\target
md D:\myDir\target\result

клоню с гита в папку
dotnet new sln --name MyProject
dotnet sln MyProject.sln add AnotherProject.csproj (мое решение зависит от другого в проекте)
dotnet publish MyProject.sln -c release -r win-x64 --self-contained false --source https://api.nuget.org/v3/index.json --output D:\myDir\target
dotnet vstest md D:\myDir\target\MyProject.dll -- MSTest.DeploymentEnabled=true --test-adapter-path C:\target\TechTalk.SpecRun.VisualStudio. TestAdapter.dll --framework TechTalk.SpecRun.Framework --InIsolation --ResultsDirectory D:\myDir\target\result

При запуске все билдится, с warningами, но без ошибок.
Когда доходит до vstest то выводит список всех feature файлов, а далее выводит следующее:


также SpecRun генерирует страничку отчета, где все тесты красные, а сверху вот такая ошибка:


как я понимаю из документации это все гораздо проще было бы, если бы был бы xunit или nunit, но проблема в том, что там я не могу подобрать зависимости так, чтобы все работало в самой студии,
так и тут собственно, какие команды я только ни писала, не работает, не запускает тесты.
Может есть у кого какие идеи? Помогите пожалуйста
.NET Core 2.2
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.05.2020, 18:47
Ответы с готовыми решениями:

Запуск С Командной Строки
с виндяткой ситуация достаточно обсосана с линухами - все печальней (в смысле адекватной инфы от вендора) гугл нам в помощь...

Скрытый запуск командной строки
необходимо по нажатию кнопки удалять процесс, реализовал это так System.Diagnostics.Process.Start("taskkill", "/F /IM...

Запуск программы из командной строки
не могу запустить програму из командной строки код package ppl; class El { double a;//bolshaya polyos double...

4
0 / 0 / 0
Регистрация: 17.05.2020
Сообщений: 3
19.05.2020, 09:18  [ТС]
В итоге я перевела на nunit легко.
Но проблема осталась,

Проблема в скрине решилась тем, что я просто нашла этот файл и кинула в проект, но дальше идут уже другие ошибки.
уже пыталась через vstest.console.exe запустить и запускается, но все тоже самое.
создавала файлы .runsettings и .srprofile и выходит ошибка NullReferenceException того класса, который запускает у меня тесты...
все еще жду ваших идей(
0
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
19.05.2020, 10:01
Цитата Сообщение от Eva_Music Посмотреть сообщение
как я понимаю из документации это все гораздо проще было бы, если бы был бы xunit или nunit
Процесс точно такой же. Нужна основная библиотека, генератор классов и раннер. Например для MsBuild 2: SpecFlow (основная библиотека), SpecFlow.MsTest (раннер для MsBuild 2), SpecFlow.Tools.MsBuild.Generation (создает cs файлы из feature).
Но:
1. С MsBuild надо быть аккуратным. Должны быть установлены MSTest.TestAdapter и MSTest.TestFramework второй версии.
2. В проекте должен быть только ОДИН раннер. Более подробно в документации SpecFlow, хотя она немного устарела.

По крутости библиотек: xUnit > NUnit >>>> MsBuild

Советую создать новый проект в новом солюшене и подключить только эти 5 либ для MsBuild, затем проверить работу через Test Explorer в Visual Studio.

Цитата Сообщение от Eva_Music Посмотреть сообщение
.NET Core 2.2
Лучше использовать 3.1.

Цитата Сообщение от Eva_Music Посмотреть сообщение
Тесты нельзя запустить через консоль!
Надо запустить Developer Command Prompt for VS 2019 и написать: VSTest.Console.exe My\Path\To\Test.dll
0
0 / 0 / 0
Регистрация: 17.05.2020
Сообщений: 3
19.05.2020, 10:16  [ТС]
по идее у меня все так как вы написали, кроме разве что:

I2um1: Советую создать новый проект в новом солюшене
я не могу создать другой солюшен, тк в этом есть проекты от которых у нас общие классы.

I2um1: Лучше использовать 3.1
то есть теоретически все эти ошибки могут возникать, так как стоит .NET Core 2.2?
0
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
19.05.2020, 10:33
Цитата Сообщение от Eva_Music Посмотреть сообщение
по идее у меня все так как вы написали
Нет, на скрине MSTest.TestAdapter и MSTest.TestFramework первой версии, а должны быть второй. Нет либы SpecFlow.MsTest и какой-то еще мусор, который может влиять.

Цитата Сообщение от Eva_Music Посмотреть сообщение
я не могу создать другой солюшен, тк в этом есть проекты от которых у нас общие классы.
Идея в минимизации проблемы: отдельный проект в отдельном солюшене, который проверяет a + b = c. Это поможет локализировать проблемы.

Цитата Сообщение от Eva_Music Посмотреть сообщение
.NET Core 2.2
Поддержка 2.2 закончилась вроде в декабре того года. Не рекомендуется к использованию. И есть возможность использовать 3.1, не вижу причин использовать старье.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.05.2020, 10:33
Помогаю со студенческими работами здесь

Запуск ОС из командной строки grub
Стоял дебиан, затем установил ремикс ос, теперь в грубе только он. Лайв сд нет. Как из командной строки груба запустить систему?...

Программный запуск командной строки
Здравствуйте. Как сделать так, чтобы при запуске программа открывала командную строку, прописывала там что-нибудь и...

Запуск командной строки с параметрами
Есть командная строка и ее надо запустить, делаю как обычно System.Diagnostics.Process.Start("C:\Temp\Some.exe"); ...

Запуск ADB из командной строки
Добрый день, недавно в Qt, пытаюсь через командную строку подключиться к устройству Android через ADB следующим образом: QProcess...

Запуск программы из командной строки
Здравствуйте. Подскажите, как запустить следующею программу из командной строки? #include <iostream> #include <limits> ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru