我用Mocha来测试我的JavaScript东西。我的测试文件包含5个测试。是否可以运行一个特定的测试(或一组测试),而不是文件中的所有测试?


当前回答

使用Mocha的——fgrep(或者-f)你可以选择包含字符串的测试,例如:

mocha -f 'my test x'

将在it()、describe()或context()块中运行包含我的测试x的所有测试。

其他回答

根据您的使用模式,您可能只喜欢使用。我们使用TDD风格;它是这样的:

test.only('Date part of valid Partition Key', function (done) {
    //...
}

只有这个测试将从所有文件/套件中运行。

尝试使用摩卡的——grep选项:

    -g, --grep <pattern>            only run tests matching <pattern>

您可以使用任何有效的JavaScript正则表达式作为<pattern>。例如,如果我们有test/mytest.js:

it('logs a', function(done) {
  console.log('a');
  done();
});

it('logs b', function(done) {
  console.log('b');
  done();
});

然后:

$ mocha -g 'logs a'

运行单个测试。注意,这个greps对所有describe(name, fn)和it(name, fn)调用的名称都适用。

考虑对命名空间使用嵌套的describe()调用,以便便于定位和选择特定的集合。

只在“describe”,“it”或“context”之前使用。我使用“$npm run test:unit”运行,它只执行带有.only的单元。

describe.only('get success', function() {
 // ...
});

it.only('should return 1', function() {
  // ...
});

查看文档,我们看到简单地使用:

mocha test/myfile

将工作。你可以省略结尾的'.js'。

你可以试试"it.only"

it.only('Test one ', () => {
            
    expect(x).to.equal(y);
});

it('Test two ', () => {
            
    expect(x).to.equal(y);
});

在这种情况下,只执行第一个