Модульный тест с использованием карма-жасмина с дочерним процессом - PullRequest
0 голосов
/ 24 февраля 2019

Приветствие,

В настоящее время я пытаюсь создать тесты, используя карма-жасмин, в приложении, использующем Angular и Electron.

Я столкнулся с проблемой с простым git, который использует дочерний процесс ипохоже, это вызывает проблему:

"ОШИБКА в ./node_modules/simple-git/src/index.js Модуль не найден: Ошибка: не удается разрешить 'child_process' в 'C: \ Users \ Martin\ Documents \ Cours \ Projet \ Githarpon \ git-harpon \ node_modules \ simple-git \ src 'resolv' child_process 'в' C: \ Users \ Martin \ Documents \ Cours \ Projet \ Githarpon \ git-harpon \ node_modules \ simple-git \ src '"

Затем я попытался смоделировать мой сервис, использующий simple-git (GitService)

    TestBed.configureTestingModule({
      declarations: [HomeComponent],
      imports: [
        FormsModule
      ],
      providers: [
        {
          provide: TranslateService,
          useClass: MockTranslateService
        },
        {
            provide: GitService,
            useClass: MockGitService
        },
        {
            provide: ElectronService,
            useClass: MockElectronService
        }
      ]
    })
      .compileComponents();
  }));

MockService:

import * as gitPromise from 'simple-git/promise';
import * as simpleGit from 'simple-git';
import { Subject } from 'rxjs';
import { ElectronService } from '../providers/electron.service';
import * as  GitUrlParse from 'git-url-parse';
import { ServiceResult } from '../models/ServiceResult';
import { TranslateService } from '@ngx-translate/core';

export class MockGitService {
}

И, наконец, моя карма.conf.js file:

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', '@angular-devkit/build-angular'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-jasmine-html-reporter'),
      require('karma-coverage-istanbul-reporter'),
      require('karma-htmlfile-reporter'),
      require('@angular-devkit/build-angular/plugins/karma'),
    ],
    client:{
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    coverageIstanbulReporter: {
      dir: require('path').join(__dirname, '../coverage'),
      reports: [ 'html', 'lcovonly' ],
      fixWebpackSourcePaths: true
    },
    htmlReporter: {
      outputFile: '../units/units.html'
    },
    reporters: ['progress', 'html'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: true
  });
};

Любая помощь может быть очень полезна

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