Javascript 摩卡跳过了一些测试
我有以下测试(其值因公司政策而改变),但无论出于何种原因,摩卡都不会运行它。更奇怪的是,如果我将Javascript 摩卡跳过了一些测试,javascript,unit-testing,mocha.js,Javascript,Unit Testing,Mocha.js,我有以下测试(其值因公司政策而改变),但无论出于何种原因,摩卡都不会运行它。更奇怪的是,如果我将test更改为test。只有,摩卡才会运行它,但正如人们所预料的那样,我的其他测试都不会运行。我添加了一些console.logs来描述什么运行了,什么没有运行。有人见过这样的东西吗 守则: /*global suite, setup, teardown, test, require, console */ var expect = require('expect.js'), sinon =
test
更改为test。只有,摩卡才会运行它,但正如人们所预料的那样,我的其他测试都不会运行。我添加了一些console.log
s来描述什么运行了,什么没有运行。有人见过这样的东西吗
守则:
/*global suite, setup, teardown, test, require, console */
var expect = require('expect.js'),
sinon = require('sinon'),
proxyquire = require('proxyquire');
suite('seven', function () {
'use strict';
var one = {
a: sinon.stub()
};
var two = {
b: sinon.stub()
};
var three = {
c: sinon.stub()
};
var four = proxyquire(
'./four.js',
{
'one.js': one,
'two.js': two
}
);
var five = proxyquire(
'./five.js',
{
'./four.js': four
}
);
var six = proxyquire(
'./six.js',
{
'./five': five
}
);
var seven;
setup(function () {
console.log('does not print');
seven = proxyquire(
'./seven.js',
{
'./three.js': three,
'./six.js': six
}
);
});
suite('d', function () {
console.log('does print');
test('d things', function () {
console.log('also does not print');
var expectedDValue = 'd value';
one.a.callsArgWith(1, {
'dKey': expectedDValue
});
two.b.callsArgWith(1, true);
three.c.returns({
'cKeyOne': 'cValueOne',
'cKeyTwo': {
'subCKey': 'subCValue'
}
});
return seven.d().then(function (dValue) {
expect(dValue).to.be(expectedDValue);
});
});
});
});
摩卡正在通过make
与以下相关线路运行:
TEST_TIMEOUT := 5000
MOCHA_REPORTER := dot
MOCHA_UI := tdd
SERVER_PATH := js
MODULE_PATH := $(realpath ./)/node_modules/.bin
MOCHA_COMMAND := $(MODULE_PATH)/mocha
SERVER_TEST_FILES := $(shell find $(SERVER_PATH) -name "*.test.js")
MOCHA_SETUP_FILE := $(shell find $(SERVER_PATH) -name "mochaSetup.js")
test:
-@$(MOCHA_COMMAND) -u $(MOCHA_UI) -t $(TEST_TIMEOUT) -R $(MOCHA_REPORTER) $(MOCHA_SETUP_FILE) $(SERVER_TEST_FILES)
更新
我发现在大约1600次测试中,只有大约900次正在运行。我的是新的纯粹是巧合。正在读取测试文件-如果我看到套件
功能中的console.log
已打印-但既没有执行设置
也没有执行测试
功能。我确认它们也没有在同事的机器上执行,但是它们正在我们的CI环境中执行
更新2
问题似乎仅限于Windows Linux子系统(WSL)-另一个在Windows 7上运行VM的同事看到了所有测试的运行。这导致另一个测试中出现的低级异常导致Mocha完全停止运行测试。具体地说,我的一个测试是尝试执行WSL的文件系统不支持的文件操作,而不是告诉我发生了什么,Mocha刚刚退出
这不是一个很好的过程,但我对其他有此问题的人的建议是,在Mocha退出之前找到最后一次测试运行,并手动检查低级错误。您发布的代码实际上运行了测试,因此我认为问题出在一些您没有发布的代码中。而且,可能相关。您使用的是哪个版本的mocha?那么问题是否出在运行的代码中?我不确定还要发布什么代码,因为这是文件的全部内容,没有专有名称和值。摩卡的版本是1.21.4,我知道它确实很旧了,但我不允许在没有公司许可的情况下升级任何东西。老实说,我不确定。我将您的代码复制到一个文件中,安装了所有依赖项(包括mocha@1.21.4),为您所需的模块创建了空白JS文件,并且运行良好:也许可以共享您用来运行mocha的命令?用运行测试的Makefile片段编辑了我的问题。