我如何只在业力中运行某些测试?

dei*_*tch 5 karma-runner karma-mocha

我正确设置了karma配置,配置文件,在后台运行,非常棒.一旦我更改并保存文件,它就会重新运行测试....所有750个单元测试.我希望能够运行一些.如果没有手动攻击配置文件或在多个文件中注释掉数百个测试,有没有简单的方法呢?

例如,当使用say mocha运行命令行服务器测试时,我只使用regexp : mocha -g 'only tests that I want'. 使调试和快速检查更容易.

dei*_*tch 6

所以现在我觉得很愚蠢.mocha支持非常窄的正则表达式匹配版本.

这将运行所有测试

describe('all tests',function(){
   describe('first tests',function(){
   });
   describe('second tests',function(){
   });
});
Run Code Online (Sandbox Code Playgroud)

这只是'第一次测试'

describe('all tests',function(){
   describe.only('first tests',function(){
   });
   describe('second tests',function(){
   });
});
Run Code Online (Sandbox Code Playgroud)

你也可以 it.only()

我应该注意到这一点.叹.


Mar*_*coL 4

不幸的是,您可以在 karma 启动时执行此操作,而不是在运行时执行此操作。如果你想动态地改变它,你必须付出更多的努力。

假设您想从一开始就专注于一组特定的测试,在karma-mocha插件页面上有一段代码可以完成您想要的操作:

module.exports = function(config) {
  config.set({
    // karma configuration here
    ...

    // this is a mocha configuration object
    client: {
      // The pattern string will be passed to mocha
      args: ['--grep', '<pattern>'],
      ...
    }
  });
};
Run Code Online (Sandbox Code Playgroud)

为了使<pattern>参数化,您必须将配置文件包装在配置器中,该配置器将侦听 CLI 并为您自定义 karma 配置。

看看这个 SO 答案,了解如何设置一个非常简单的配置器