Не удается найти модуль в файле .spe c .ts в Ioni c 3 - PullRequest
1 голос
/ 10 февраля 2020

Я работаю над приложением Ioni c 3 (Angular type), и для реализации unit testing я использую Jasmine и Karma . Структура проекта Ioni c 3 (тип Angular) не предоставляет файл .spe c .ts для страниц / компонентов / поставщиков. Итак, я вручную создал файл .spe c для страниц, но он показывает ошибку «Не удается найти модуль» @ angular / core »и ошибку« Не удается найти модуль »@ angular / core / testing».

.spec.ts error image

Поскольку эти файлы не могут извлекать модули или не могут получить доступ к этим модулям.

Я пробовал следующие способы:

  • Удалил node_modules и переустановил его (npm install).
  • Команда Run npm i @ angular / core , с и без --save-dev.
  • Перезапустил также Sublime и Terminal после новой установки.

Но это не не принесет никакого решения этой проблемы.

Итак, есть ли способ решить эту проблему? Или я неправильно внедряю юнит-тестирование Жасмин-Карма? Пожалуйста, предложите.

karma.conf. js:

var webpackConfig = require('./webpack.test.js');
module.exports = function(config) {
    var _config = {
        basePath: '../',
        frameworks: ['jasmine'],

        files: [{pattern: 'src/pages/**/*.spec.ts', watched: true},
        { pattern: './src/pages/**/*',
        watched: false,
        included: false,
        served: true,
        nocache: false
    }],

    proxies: {'/assets/': '/base/src/pages/'},

    preprocessors: {'**/*.spec.ts' : ["webpack"]},

    webpack: webpackConfig,

    webpackMiddleware: {stats: 'errors-only'},

    webpackServer: {noInfo: true},

    browserConsoleLogOptions: {
        level: 'log',
        format: '%b %T: %m',
        terminal: true
    },

    coverageIstanbulReporter: {
        reports: [ 'html', 'lcovonly' ],
        fixWebpackSourcePaths: true
    },

    reporters: config.coverage ? ['kjhtml', 'dots', 'coverage-istanbul'] : ['kjhtml', 'dots'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false
};

config.set(_config);
};

1 Ответ

0 голосов
/ 11 февраля 2020

В Ioni c 3 структуры проекта tsconfig.json "exclude" включало "src / ** / *. Spe c .ts"; следующим образом:

"exclude": [
     "node_modules",
     "src/**/*.spec.ts"]

Итак, я переместил эту строку "src / ** / *. spe c .ts" из "exclude" в "include" с тем же файлом tsconfig. json. Теперь ошибка «Не удается найти узлы модулей» больше не отображается. И это сработало для меня.

"include": [
     "src/**/*.ts",
     "src/**/*.spec.ts"]
...