【发布时间】:2017-04-14 18:41:59
【问题描述】:
问题/问题
我已将 angular-cli 1.0.0 生成的基本项目从使用 jasmine 转换为使用 mocha。 为什么当我完成到 mocha 的转换时,所有测试都运行两次?有趣的是,当我们使用 wallabyjs runner 或降级的 angular2 运行相同的测试/代码时,测试只运行一次。
为了从头开始复制,我采取了 3 个步骤和可选的第 4 个步骤。不幸的是,这涉及到很多代码,因此我提供了一个存储库来进行演示,并提供了一个用于执行每个步骤的命令,可以在步骤详细信息中找到。
第一步用angular-cli创建项目
ng new someBlankProjectcd someBlankProject-
ng test预期结果 3 次测试运行
详情
- 配置
- angular-cli + angular4 + 业力 + 茉莉花
- angular-cli 项目 jasmine + karma 测试结果
-
复制命令
-
git clone git@github.com:arranbartish/angular-cli-seed.git 01-fresh-project; cd 01-fresh-project; git checkout 2bf12b577173085344a86e37726d9f7ece930c77;npm install;npm run test -- --single-run=true
-
第 2 步验证 jasmine 测试是否使用 karma 和 wallaby 在本地和 CI 上运行
- 引入diff 包括CI 和wallabyjs runner
-
npm install解决依赖关系
-
-
ng test预期结果 3 次测试运行 - 与wallabyjs 确认
No failing tests, 3 passing
详情
- 配置
- angular-cli + angular4 + 业力 + 茉莉花
- angular-cli 项目 jasmine + karma 测试结果
-
复制命令
-
git clone git@github.com:arranbartish/angular-cli-seed.git 02-add-wallaby; cd 02-add-wallaby; git checkout 0bb96884d0e71f286d0b4fedc0dcafd20dc9d2b1;npm install;npm run test -- --single-run=true
-
- wallabyjs 结果
No failing tests, 3 passing
第 3 步引入 mocha 并将规格从 jasmine 转换为 mocha
- 引入diff转换为mocha
-
npm prune;npm install清理和解决依赖关系
-
-
ng test预期结果 3 次测试运行 实际结果 6 次测试运行Chromeium 53.0.2785 (Ubuntu 0.0.0): Executed 6 of 3 SUCCESS (0.347 secs / 0.042 secs)
- 与wallabyjs 确认
No failing tests, 3 passing
详情
- 配置
- angular-cli + angular4 + karma + mocha
- angular-cli 项目 mocha + karma 测试结果
-
复制命令
-
git clone git@github.com:arranbartish/angular-cli-seed.git 03-converted-mocha; cd 03-converted-mocha; git checkout 0a9ed8804e15c451ff0d67ebd2d38980d54f9763;npm install;npm run test -- --single-run=true
-
- wallabyjs 结果
No failing tests, 3 passing
可选观察
我观察到的最奇怪的事情之一是使用 angular 2 并没有相同的行为!
第 4 步将角度从 4 降级为 2
- 引入diff降级angular4
-
npm prune;npm install清理和解决依赖关系
-
-
ng test预期结果 3 次测试运行 - 与wallabyjs 确认
No failing tests, 3 passing
步骤详情
- 配置
- angular-cli + angular2 + karma + mocha
- angular-cli project mocha + karma + angular2 测试结果
-
复制命令
-
git clone git@github.com:arranbartish/angular-cli-seed.git 04-downgrade-angular; cd 04-downgrade-angular; git checkout 0e6c2811b9aab722fcc382e4676d97c089ad1f91;npm install;npm run test -- --single-run=true
-
- wallabyjs 结果
No failing tests, 3 passing
【问题讨论】:
标签: unit-testing angular karma-runner karma-mocha