Подтвердить что ты не робот

Жасмин в отдельном тестовом проекте

Является ли практическим/возможным отделить тесты жасмина в отдельный проект визуальной студии?

Я только начинаю с angular, и я пытаюсь написать свои тесты, прежде чем начать с реализации angular. Я буду писать свой проект в Visual Studio 2012 с помощью тестового бегунка Chutzpah, см. Этот video. В настоящее время я пытаюсь выяснить, как организовать структуру папок. Я знаю о angular -seed и yoman, но они плохо подходят для запуска проекта .net.

Я предполагаю, что, поскольку модульные тесты в Visual Studio обычно разделяются на отдельный тестовый проект, по соглашению, тесты на жасмин тоже должны быть.

Однако, для java script, ссылки на проектные DLL не ссылаются, поэтому разделение тестов на другой проект потребует много копий и склейки, я думаю.

4b9b3361

Ответ 1

Вы можете сделать это без копирования/вставки. В ваших тестах Jasmine вы можете добавить ///<reference комментарий ///<reference который публикует ваши исходные файлы (или каталог, содержащий их). Например, учитывая эту структуру

/ProjectA/скрипты

code1.js
code2.js

/TestProjectB test1.js

Вы можете добавить эту строку вверху файла test1.js для ссылки на все ваши файлы кода:

/// <reference path="../scripts" />

Ответ 2

Традиционно, я всегда проводил модульные тесты в отдельных сборках.

Я прочитал обе стороны аргумента и предпочитаю не отправлять код, который не является производственным кодом, или иметь дополнительные шаги развертывания для удаления тестов из производственного кода.

Чтобы ссылаться на javascript в моей сборке Web.Client.Tests, например, я использую событие post-build для копирования файлов в тестовый проект. Для этого я использую robocopy - это выглядит примерно так:

robocopy "$(ProjectDir)app" "$(SolutionDir)Tests\Presentation\Web.Client.Tests\app" /E /COPY:D /IS 

robocopy "$(ProjectDir)Scripts" "$(SolutionDir)Tests\Presentation\Web.Client.Tests\Scripts" /E /COPY:D /IS

if errorlevel 1 GOTO :eof 

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