配置Jasmine不随机运行测试

20

我刚升级到Jasmine 3.3,现在默认情况下我的测试以随机顺序运行。有没有办法配置Karma和Jasmine使测试像升级到这个新版本之前那样运行?

2个回答

40

这对我有用。我一直在寻找关于这个的清晰文档,但很难找到。感谢您的发布。我正在运行karma的4.1版本和jasmine的3.4版本。 - Jessy
2
只需添加 jasmine: {random: false} 就足以将默认设置为按顺序运行测试。感谢提供这样的结构! :) - Syndic
1
对我来说没问题,karma配置中"jasmine: {random: false}"的定义就足够了。 - Samet ÇELİKBIÇAK
1
可以了,谢谢。我想应该标记为正确的吧。 "karma": "5.2.3", "jasmine-core": "3.5.0" - kodi
它对我也起作用,但是有一个疑问 => random:false 是否明智?请提供您的专业意见。 - nks
显示剩余2条评论

4
一个良好编写的单元测试用例应该独立于其执行顺序提供相同的结果。然而,我们可以改变Jasmine的执行顺序。
示例1 - 如果你只是使用Jasmine,可以添加命令行标志。
jasmine test/sample.test.js  --random=false //global installation 
npx jasmine test/sample.test.js  --random=false //local installation

例2-使用karma时,请将此添加到您的配置对象中。

 module.exports = function (config) {
   config.set({
    client:{
      jasmine:{
       random:false
     }
   },
  // rest of karma configuration goes here 
  
};

//已在karma 6.3.4和jasmine v3.8.0下进行测试


2
你说得没错,但是当你能够禁用随机性时,由于测试之间的未受控制的副作用导致的失败单元测试往往更容易调试。 ;^) - ruffin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接