Угловое тестирование - test.ts не найдено - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь следовать официальным документам Angular, чтобы настроить тестирование для проекта Angular - https://angular.io/guide/testing#service-tests

Я скачал пример Angular-проекта со страницы выше, используя первую (верхнюю) ссылку. Я сделал npm install, и когда я запускаю ng serve, он прекрасно работает.

Когда я запускаю ng test с помощью CLI, я получаю сообщение:

ERROR in Entry module not found: Error: Cant' resolve 'C:Code\testing\src\test.ts' in 'C:\Code\testing'

ERROR in error TS6053: File 'C:Code\testing\src\test.ts' not found.

Я посмотрел на этот вопрос - Как разрешить test.ts при запуске ng test? , но в этом случае файл действительно существует, но в примере проекта Angular он вообще не существует.

(Когда я впервые запустил ng test, я первоначально получил сообщение об отсутствии Жасмин Мрамора, которое я решил с помощью:)

npm install jasmine-marbles --save

Документация гласит:

Вы можете настроить многие параметры, отредактировав karma.conf.js и файлы test.ts в папке src /.

Итак, я знаю, что test.cs - это какой-то файл конфигурации, но как мне его сгенерировать? Этого не существует в проекте Angular «живой пример». И как я узнаю, что созданный мной test.cs будет надежно работать с этим проектом?

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Я использовал предложение @ joshbaeha для ng new нового проекта Angular 5 и скопировал файл test.ts, который, кажется, полностью универсален и не зависит от структуры проекта или чего-либо еще. Все сейчас работает. Вот оно:

test.ts

// This file is required by karma.conf.js and loads recursively all the .spec and framework files

import 'zone.js/dist/zone-testing';
import { getTestBed } from '@angular/core/testing';
import {
  BrowserDynamicTestingModule,
  platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';

declare const require: any;

// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
  BrowserDynamicTestingModule,
  platformBrowserDynamicTesting()
);
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);
0 голосов
/ 17 мая 2018

Я не знаю, можете ли вы сгенерировать только файл test.ts или нет, но, насколько я знаю, этот файл генерируется автоматически при создании нового углового проекта с использованием angular-cli. Таким образом, вы можете просто создать новый проект, используя angular-cli, а затем скопировать файл src / test.ts из этого нового проекта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...