标签: karma-mocha

“TS2322:运行单元测试时,类型 'Timeout' 不可分配给类型 'number'”

我有两个 TypeScript 包,一个包(包 A)依赖于另一个(包 B)。每个包都有一个使用 Karma 设置的单元测试。从 NPM 安装所有依赖项后,当我为每个单独运行单元测试时,单元测试运行良好。但是,如果我npm link package-b在包 A 中使用并运行包 A 的单元测试,我会收到标题中所述的错误:“TS2322:类型‘超时’不可分配给‘数字’类型。”

有问题的线路是对 的调用setTimeout。挖后,我发现,虽然单独运行测试,没有npm link,打字稿正确识别setTimeout的签名typescript/lib/lib.dom为所需的类型,但在使用后出现故障的情况下,npm link它使用节点的使用setTimeout中的签名@types/node/index。我通过将返回类型更改setTimeoutstringstringTimeout.

我不确定的是为什么TypeScript 编译器决定在这种特定情况下使用替代定义,也不确定我如何说服它使用所需的定义。我很高兴发布一些代码,但我不确定在这种情况下什么有用,因为失败的线路上只有setTimeout调用。

unit-testing typescript karma-runner karma-mocha

46
推荐指数
4
解决办法
2万
查看次数

Karma,PhantomJS和es6 Promises

我正在编写一个使用新的es6 promises的JavaScript库.我可以在Firefox中测试库,因为已经定义了promises.但是,当我尝试使用Karma和PhantomJS测试我的代码时,我收到错误Can't find variable: Promise..我猜这是因为PhantomJS浏览器还不支持es6承诺.

如何配置Karma为承诺引入polyfill?

javascript phantomjs karma-runner karma-mocha es6-promise

37
推荐指数
3
解决办法
2万
查看次数

Karma和Mocha之间的区别

我是Javascript世界的新手,主要是OOP.我试图在网上查找Karma和Mocha之间的明确区别但是徒劳无功.我知道Karma是一个测试运行器而Mocha是一个单元测试框架,但是Mocha也有自己的驱动程序,可用于在浏览器中运行测试.也就是说,我不明白Karma带来了什么,以及人们为什么一起使用这些.

mocha.js karma-runner karma-mocha

31
推荐指数
1
解决办法
1万
查看次数

您的平台上没有PhantomJS浏览器的二进制文件.请设置"PHANTOMJS_BIN"env变量

我的package.json看起来像这样..

"karma-phantomjs-launcher": "^0.1.4",
"karma-safari-launcher": "^0.1.1",
"karma-sinon-chai": "~0.2.0",
"karma-spec-reporter": "~0.0.16",
"mocha": "~1.20.1"
Run Code Online (Sandbox Code Playgroud)

我的npm版本是2.2.0

当我进行业力测试时,我会得到这个 - 业力开始my.conf.js

phantomjs karma-runner karma-mocha mocha-phantomjs karma-coverage

26
推荐指数
3
解决办法
2万
查看次数

TypeError:expect(...).to.be不是函数

我在我的项目中使用grunt配置我的Karma amd mocha框架.当我运行业力开始时,我得到了下面提到的错误.

我在运行命令时在控制台中收到此错误: Karma start

TypeError: expect(...).to.be is not a function
Run Code Online (Sandbox Code Playgroud)

我的Karma.confjs

// Karma configuration
// Generated on Fri Nov 27 2015 11:48:47 GMT+0530 (India Standard Time)

module.exports = function(config) {
  config.set({

    // base path that will be used to resolve all patterns (eg. files, exclude)
    basePath: '',


    // frameworks to use
    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
    frameworks: ['mocha', 'chai'],


    // list of files / patterns to load in the browser
    files: [
      'bower_components/angular/angular.js',
      'bower_components/angular-mocks/angular-mocks.js',
      'app/*.js',
      // 'test/specs/*.js',
      'test/specs/array.js',
      // …
Run Code Online (Sandbox Code Playgroud)

javascript karma-runner karma-mocha

26
推荐指数
1
解决办法
2万
查看次数

如何在mocha中编写一个post请求测试,用数据来测试响应是否匹配?

问题: 我如何在mocha中编写一个post请求测试,测试响应是否匹配?

响应将只是一个url字符串,因为它是第三方服务的重定向.

工作示例有效负载:

curl -H "Content-Type: application/json" -X POST -d '{"participant":{"nuid":"98ASDF988SDF89SDF89989SDF9898"}}' http://localhost:9000/api/members
Run Code Online (Sandbox Code Playgroud)

member.controller.js // post方法

// Creates a new member in the DB.
exports.create = function(req, res) {
  Member.findByIdAndUpdate(req.body.participant.nuid,
    { "$setOnInsert": { "_id": req.body.participant.nuid } },
      { "upsert": true },
      function(err,doc) {
        if (err) throw err;
        res.send({
          'redirectUrl': req.protocol + '://' + req.get('host') + '/registration/' + req.body.participant.nuid
        })
    }
  );
};
Run Code Online (Sandbox Code Playgroud)

预计res.send

 {"redirectUrl":"http://localhost:9000/registration/98ASDF988SDF89SDF89989SDF9898"}  
Run Code Online (Sandbox Code Playgroud)

工作示例GET请求测试

var should = require('should');
var app = require('../../app');
var request = require('supertest');

describe('GET /api/members', function() …
Run Code Online (Sandbox Code Playgroud)

mocha.js node.js karma-mocha

18
推荐指数
1
解决办法
3万
查看次数

Karma和React,有警告导致错误

我正在使用Karmamocha来测试我的React组件.当PropTypes不匹配时,我会显示一些警告.然而,让这些警告引起实际错误将是非常有趣的,以便跟踪测试并修复它.

你知道怎么做到这一点吗?

mocha.js karma-runner reactjs karma-mocha

11
推荐指数
2
解决办法
2160
查看次数

使用Karma运行的Mocha单元测试 - done()未定义

我正在尝试用Mocha编写的测试来运行Karma,它们有点工作,但我不能使用done()方法来实现异步测试,这实际上使得这些工具对我来说毫无用处.我错过了什么?

karma.conf.js

module.exports = function(config) {
  config.set({
    basePath: '../..',
    frameworks: ['mocha', 'requirejs', 'qunit'],
    client: {
        mocha: {
            ui: 'bdd'
        }
    },
    files: [
      {pattern: 'libs/**/*.js', included: false},
      {pattern: 'src/**/*.js', included: false},
      {pattern: 'tests/mocha/mocha.js', included: false},
      {pattern: 'tests/should/should.js', included: false},
      {pattern: 'tests/**/*Spec.js', included: false},
      'tests/karma/test-main.js'
    ],
    exclude: [
      'src/main.js'
    ],
    // test results reporter to use
    // possible values: 'dots', 'progress', 'junit', 'growl', 'coverage'
    reporters: ['progress', 'dots'],
    port: 9876,
    colors: true,
    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing mocha.js karma-runner karma-mocha

9
推荐指数
1
解决办法
1万
查看次数

诺克并没有拦截我的要求

我正在尝试使用karma服务器和nock创建一些基本测试.似乎nock根本没有拦截我的请求,有没有人有想法?我无法弄清楚遗漏了什么.我仍然得到真实的数据.

nock('https://api.github.com/users/' + username).log(console.log)
.get('/')
.query(true)
.reply(400, {
  statusMessage: 'Bad Request',
  foo: 'foo'
})

http.get('https://api.github.com/users/' + username, function(res) {
  console.log('res', res)
})
Run Code Online (Sandbox Code Playgroud)

我还添加了这个中间件

const middlewares = [thunk];
const mockStore = configureStore(middlewares);
Run Code Online (Sandbox Code Playgroud)

======更新6月6日======

使用react-redux的整个流程这是我的测试:

import configureStore from 'redux-mock-store';
import thunk from 'redux-thunk';
import axios from 'axios';
import expect from 'expect';
import * as actions from 'actions/test-actions'
import * as types from 'types';
import nock from 'nock'
import { username } from 'constansts'

const middlewares = [thunk];
const mockStore = configureStore(middlewares);

describe('Asynchronous …
Run Code Online (Sandbox Code Playgroud)

testing node.js reactjs karma-mocha nock

9
推荐指数
1
解决办法
4675
查看次数

如何在Karma,Webpack,PhantomJS中运行单元测试时修复错误'ReferenceError:找不到变量:require'

我使用Karma,Webpack,酶,PhantomJS来测试我的反应项目.当我运行以下命令运行测试用例时,

./node_modules/karma/bin/karma start config/karma.conf.js --single-run --browsers PhantomJS
Run Code Online (Sandbox Code Playgroud)

我得到以下错误:

PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR
  ReferenceError: Can't find variable: require
  at /dev/test/test.js:3
Run Code Online (Sandbox Code Playgroud)

在test.js的源代码的line3中,我没有使用require,下面是代码:

import { expect } from 'chai'; 
Run Code Online (Sandbox Code Playgroud)

我想为什么PhantomJS抱怨这个错误.

下面是我的业力配置文件:

var path = require('path');
var webpackconf = require("./webpack.config")

module.exports = function(config) {
  config.set({
    basePath: '',
    frameworks: ['mocha', 'chai'],
    files: [
      '../test/**/*.js'
    ],

    preprocessors: {
      // add webpack as preprocessor
      '../src/**/*.js': ['babel'],
      '../test/**/*.js': ['babel'],
      '../src/**/*.less': ['babel']
    },
    webpack: { //kind of a copy of your webpack config
      devtool: …
Run Code Online (Sandbox Code Playgroud)

karma-jasmine karma-mocha webpack enzyme

8
推荐指数
1
解决办法
1678
查看次数