3

タイトルが示すように、スイートでテストが失敗したときに行番号を確認できるようにしたいと考えています。karma-tapプラグイン、tapフレームワーク、およびdotsレポーターに依存しています。

ちょっとしたコンテキスト: ソース マップは適切に機能しているため、テスト ファイルでスローされた例外は正しい行とスタック トレースを報告します。ただし、基本テストが失敗すると、回線やモジュールについては何も表示されずに「失敗しました」というメッセージが出力されます。

Chrome 50.0.2661 (Mac OS X 10.11.4)  should be equal FAILED
    {
      "operator": "equal",
      "expected": 0,
      "actual": 1
    }
Chrome 50.0.2661 (Mac OS X 10.11.4)  should be equal FAILED
    {
      "operator": "equal",
      "expected": 0,
      "actual": 1
    }
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
...........................

私の最初の考えでは、これは単なる Tap の制限であると考えられていましたが、それが本当であるとは想像できません。私の完全な Karma 設定を以下に示します。テスト中に行番号の出力が失敗する原因となる設定が何かありますか?

{
    plugins: [
      require('karma-webpack'),
      require('karma-tap'),
      require('karma-chrome-launcher'),
      require('karma-sourcemap-loader')
    ],

    basePath: '',
    frameworks: [ 'tap' ],
    files: [
      'tests.bootstrap.js',
    ],
    preprocessors: {
      'src/**/*.js': ['webpack', 'sourcemap'],
      'tests.bootstrap.js': [ 'webpack', 'sourcemap' ]
    },
    webpack: {
      devtool: 'inline-source-map',
      externals: {
       cheerio: 'window',
       'react/lib/ExecutionEnvironment': true,
       'react/lib/ReactContext': true,
       'text-encoding': 'window',
       'react/addons': true,
      },
      module: {
        preLoaders: [
          {
            test: /\.js/,
            exclude: /node_modules/,
            loader: 'babel'
          },
          {
            test: /\.js$/,
            include: [
              path.resolve(__dirname, 'src/components/'),
              //path.resolve(__dirname, 'src/containers/'),
              path.resolve(__dirname, 'src/layouts/'),
              path.resolve(__dirname, 'src/reducers/'),
              path.resolve(__dirname, 'src/stores/'),
              path.resolve(__dirname, 'src/util/')
            ],
            exclude: /-container\.js/,
            loader: 'isparta'
          }
        ],
        loaders: [
          {
            test: /\.js$/,
            exclude: /node_modules/,
            loader: "source-map-loader"
          }, {
            test: /\.(png|jpg|jpeg|gif|woff|woff2)$/,
            loader: 'url?limit=25000',
            include: path.resolve(__dirname, 'src')
          }, {
            test: /\.svg$/,
            loader: 'file-loader'
          }
        ]
      },
      node : {
        fs: 'empty'
      },
      resolve: {
        modulesDirectories: ['src', 'node_modules']
      }
    },

    webpackMiddleware: {
      noInfo: true
    },

    reporters: [ 'dots' ],

    client: {
      captureConsole: false
    },

    port: 9878,
    colors: true,
    logLevel: config.LOG_DEBUG,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false
  }
4

0 に答える 0