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


当前回答

对于那些希望运行单个文件但又不能使其工作的人来说,对我有用的是,我需要将我的测试用例包装在如下所示的描述套件中,然后使用描述标题,例如。'My Test Description'作为模式。

describe('My Test Description', () => {
  it('test case 1', () => {
    // My test code
  })
  it('test case 2', () => {
  // My test code
  })
})

然后运行

纱线测试-g“我的测试描述”

or

运行我的测试说明

其他回答

根据您的使用模式,您可能只喜欢使用。我们使用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()调用,以便便于定位和选择特定的集合。

有多种方法可以做到这一点。

If you just want to run one test from your entire list of test cases then, you can write only ahead of your test case. it.only('<test scenario name>', function() { // ... }); or you can also execute the mocha grep command as below mocha -g <test-scenario-name> If you want to run all the test cases which are inside one describe section, then you can also write only to describe as well. describe.only('<Description of the tests under this section>', function() { // ... }); If you have multiple test files & you wanted to run only one of then you can follow the below command. npm test <filepath> eg : npm test test/api/controllers/test.js here 'test/api/controllers/test.js' is filepath.

对于那些希望运行单个文件但又不能使其工作的人来说,对我有用的是,我需要将我的测试用例包装在如下所示的描述套件中,然后使用描述标题,例如。'My Test Description'作为模式。

describe('My Test Description', () => {
  it('test case 1', () => {
    // My test code
  })
  it('test case 2', () => {
  // My test code
  })
})

然后运行

纱线测试-g“我的测试描述”

or

运行我的测试说明

你可以试试"it.only"

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

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

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