Есть ли способ запустить ng test
для одного файла вместо всего набора тестов? В идеале я хотел бы получить как можно более быстрый цикл обратной связи, когда я редактирую файл, но karma
при каждом сохранении выполнял бы весь набор, что немного медленно, когда вы создаете достаточно большой набор тестов.
Это отличается от того, как выполнить только одну тестовую спецификацию с помощью angular-cli, тем, что этот вопрос касается запуска отдельной спецификации. Речь идет о запуске отдельного файла. Решение включает ту же особенность спецификации Jasmine, но суть вопроса немного другая.
angular
jasmine
angular-cli
karma-runner
Эллиот Ларсон
источник
источник
Ответы:
Я обнаружил, что Jasmine позволяет добавлять префиксы
describe
иit
методы с помощьюf
(для фокусировки?). Итак,fdescribe
иfit
. Если вы воспользуетесь любым из них, karma запустит только соответствующие тесты. Итак, чтобы сфокусировать текущий файл, вы можете просто взять верхний уровеньdescribe
и изменить его наfdescribe
. Работает для моих целей.источник
Стоит отметить, что вы можете отключить определенный тест, не комментируя его,
xdescribe
иxit
И как кто-то уже сказал, если вы хотите сосредоточиться на каком-то тесте, тогда
fdescribe
иfit
источник
В наши дни этого можно достичь с помощью
include
опции. https://angular.io/cli/test#optionsЭто совпадение с глобусом, например:
Я не могу найти его в примечаниях к выпуску 8.1.0 , но @Swoox упоминает ниже, что это функция после версии cli
8.1.0
. Спасибо, что разобрались в этом.источник
Я обнаружил, что
ng test
есть дополнительная опция,--include
которую вы можете использовать, чтобы иметь возможность запускать тест для одного файла, или для определенного каталога, или для группы файлов:ng cli docs
источник
Вы можете перейти
src/test.ts
и изменить следующую строку:const context = require.context('./', true, /\.spec\.ts$/);
в
const context = require.context('./', true, /**yourcomponent.component**\.spec\.ts$/);
источник
Расширение кода Visual Studio
Самый простой способ - использовать расширение vscode-test-explorer вместе с его дочерними angular-karma-test-explorer и jasmine-test-adapter , вы получите список текущих тестов для запуска один за другим, если хотите:
Это тот же ответ, который я дал на этот вопрос , там есть некоторые подробности.
источник
Использование ng test --main file.spec.ts
источник
Вы должны пойти
src/test.ts
и можете изменить следующий код строки 18:в
источник
Работает, если вы укажете свой файл спецификации в качестве параметра.
Например:
ng test foo.spec.ts
Надеюсь это поможет.
источник