Почему файл .tns импортируется при запуске "теста ng" в этом проекте совместного использования кода NativeScript? - PullRequest
0 голосов
/ 07 января 2020

У меня есть проект совместного использования кода NativeScript. Я sh буду использовать юнит-тестирование Кармы с веб-версией, используя ng test. Это не удается из-за неверно импортированной версии .tns службы при создании тестов.

Ниже приведены шаги по воссозданию проблемы в минимальном проекте совместного использования кода NativeScript.

  • Создание нового проекта совместного использования кода NativeScript

    $ ng new -c=@nativescript/schematics ns-shared-test --shared
    
  • Вход в папку проекта

    $ cd ns-shared-test
    
  • Создание нового сервиса

    $ ng generate service services/my-service
    
  • Создание нового компонента

    $ ng generate component my-component
    
  • Изменение my-component.component.ts для использования my-service

    • Добавить в начало файла:

      import { MyServiceService } from '@src/app/services/my-service.service';
      
    • И заменить конструктор:

      constructor( private myService:MyServiceService ) { }
      
  • Выполнить юнит-тесты

    $ ng test
    
    • Обратите внимание, что тест проходит
  • Split my-service

    $ cp src/app/services/my-service.service.ts src/app/services/my-service.service.tns.ts
    
  • Измените my-service.service.tns.ts, чтобы использовать что-то определенное NativeScript c

    • Добавить в начало файла:

      import { Color } from 'tns-core-modules/color/color';
      
    • и заменить конструктор:

      constructor() { new Color('white'); }
      
  • Обратите внимание, что при загрузке модулей NativeScript тест не пройден

1 Ответ

1 голос
/ 08 января 2020

Решение, которое сработало для меня:

  • переименуйте my-service.service.ts в my-service.service.web.ts
  • в моей сети импорт компонента {MyServiceService} из '@ src / app / services / my-service.service.web';
  • в файле c импорта файла {MyServiceService} из '@ src / app / services / my -service.service.web '

Команда теста ng теперь должна работать

...