Conversation
Some tests rely on random() and Date, which need to be rewritten. The revised tests are moved forward to prevent being affected by global states from other tests.
Codecov Report
@@ Coverage Diff @@
## master #579 +/- ##
========================================
- Coverage 68.92% 65% -3.93%
========================================
Files 37 37
Lines 3205 3206 +1
========================================
- Hits 2209 2084 -125
- Misses 996 1122 +126
Continue to review full report at Codecov.
|
Some of those headers may be affected by Node versions.
|
从 CI 的时间看没有变快。还需要在 Linux 下测一下,可能 Linux 下 header 不太一样。 |
|
ci 时间没有变快可能是因为:
这些测试属于集成测试,之前也确实有通过这些测试发现了服务端的问题,所以可能需要有一个参数来控制是否使用指定的线上的环境进行测试(似乎直接删除 record 目录来运行也行)。 此外,尽管没有在 ci 上运行,这些测试用例是支持在浏览器上运行的(test/test.html),目前的改动应该会造成浏览器上无法运行。尽管 pollyjs 也是支持浏览器的,但是应该还是需要一些额外的适配工作。 |
|
是的,后面需要加个环境变量在 polly.js 里面来控制初始化,在需要的时候可以跳过 polly。它默认是不会在重放的时候模拟延迟的,在我本地是会快很多(修改的几个文件里的大部分测试都不会因为太慢而显示出时间)。 刚才在 Linux VPS 里用 Node 10 没重现 CI 里 polly 似乎没起作用的现象。我一会儿用 VM 把网络断了看看有没有漏掉的请求。 |
刚才没注意看,应该是这个原因。 |
|
@leeyeh 这个 PR 应该可以 merge 了,主要改了以下几点:
|
用重播的方式使部分测试不再依赖线上的 API 和云引擎,运行更快结果也更稳定。
还有一些测试依赖
Date、random(),或者每次测试会生成不同的x-lc-sessionheader,导致还是需要实际发请求到线上,需要后续修改。这些每次生成新数据的测试大多是没有清理
测试数据,所以用随机数据来绕过冲突的问题。