Как запустить тесты жасмина, написанные на машинописи для узла

Мне интересно проверить мое экспресс-приложение, написанное на машинописном тексте. В основном я использую jasmine (для написания тестовых случаев), webpack (для связывания ts с js) и karma (тестовый бегун)

Пожалуйста, найдите файлы

// about.service.ts - code to be tested
import { MongoClient, MongoError, Collection, ObjectId } from 'mongodb';

export class AboutService { // functionality }

// about.service.spec.ts - test cases
import { AboutService} from 'about.service.ts';

describe('services.about.service.spec', () => {
   it('should_return_null_date', () => {
       // test cases here
   });
});

// karma.conf.js - karma configuration file
var webpackConfig = require('./karma.webpack');

module.exports = function (config) {
config.set({
    frameworks: ['jasmine'],
    plugins: [
        require('karma-jasmine'),
        require('karma-chrome-launcher'),
        require('karma-jasmine-html-reporter'),
        require('karma-webpack')
    ],
    files: [
        'somefiles'
    ],
    mime: {
        'text/x-typescript': ['ts']
    },
    preprocessors: {
        'somefiles': ['webpack']
    },
    webpack: webpackConfig,
    reporters: ['kjhtml'],
    browsers: ['Chrome'],
    client: {
        clearContext: false,
        captureConsole: false
    },
    port: 9876,
    colors: true,
    logLevel: config.LOG_WARN,
    autoWatch: true,
    singleRun: false,
    concurrency: Infinity
 });
}

// karma.webpack.js
var nodeExternals = require('webpack-node-externals');
module.exports = {
    resolve: { extensions: ['.ts', '.js'], },
    module: {
      rules: [{
        test: /\.ts$/,
        use: ['awesome-typescript-loader']
      }]
    },
    target: "node",
    externals: [nodeExternals()]
 }

Webpack успешно завершил компиляцию, но когда карма запускается в Chrome. Там написано require('mongodb'); not found, я думаю, что require недоступен в браузере.

Все, что я хотел бы знать, как мне запускать свои тесты в среде узлов, а не в браузере? Есть ли карма погрузчики? Я хотел бы написать тесты на самом жасмине, и мне нужен веб-пакет для преобразования TS в JS. Все, что я хочу, это что-то вроде кармы, которая запускается в узле, а не в браузере?

Любая помощь очень ценится.

4 голоса | спросил user3205479 6 Maypm18 2018, 18:02:42

1 ответ


0
В настоящее время в проекте используется не только Жасмин, но и Карма.Предполагается, что Karma Runner запускает тесты в браузерах, он не подходит для работы исключительно в Node.js.Тесты должны проводиться непосредственно с жасминовым бегуном .Проекты Node обычно не нуждаются в Webpack, файлы TypeScript должны быть скомпилированы с параметрами ---- +: = 0 =: + ---- и ---- +: = 1 =: + ---- .Есть варианты, чтобы избежать этапа компиляции TypeScript со сторонними пакетами, такими как ---- +: = 2 =: + ---- .Другой вариант - переключиться на тестовую среду и среду выполнения, в которых улучшена поддержка препроцессоров и, следовательно, TypeScript в тестах Node.js - то есть Jest.
ответил estus 6 Maypm18 2018, 18:15:26

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132