运行 测试 Typescript 源代码与生成的 JavaScript
Running tests on Typescript source code Versus the generated JavaScript
在 Web 项目中,TypeScript 用于对整个应用程序、前端和后端以及测试进行编程。然后全部编译部署为JavaScript;
运行 部署期间的测试需要什么。直接在 TypeScript 源代码上 运行 它更有意义吗?或者在生成的 JavaScript(稍后部署到服务器)
上 运行 它更有意义吗
请记住,根据它 运行 所处的位置,它对诸如代码覆盖率报告之类的事情有一些小的影响。
一个学派是 运行 它在 TypeScript 源代码上,因为这是程序员正在生成的并且可以直接控制的内容。
另一方面,JavaScript 生成的代码最终会在部署后 运行 秒。
是否有公认的模式?
以前测试过它的js编译代码,后来发现运行对Typescript文件的测试更有意义。主要原因是如果任何测试失败更容易调试,因为我们在同一个 Typescript 文件上编码和测试。
下面是调试失败测试的示例:
⚠️ 见 expect
行号在 Typescript 和编译时有差异 Javascript
test.ts
import { expect } from 'chai';
describe('sum', () => {
it('should return 3', () => {
expect(2 + 1).to.equal(2); // line 5
})
})
及其js编译
"use strict";
exports.__esModule = true;
var chai_1 = require("chai");
describe('a', function () {
it('should return a', function () {
chai_1.expect(2 + 1).to.equal(2); // line 6, different number to its source code
});
});
使用 ts-mocha
对 Typescript 文件的测试结果显示第 5 行的正确问题行号
sum
1) should return 3
0 passing (12ms)
1 failing
1) sum
should return 3:
AssertionError: expected 3 to equal 2
+ expected - actual
-3
+2
at Context.<anonymous> (mocha/65152263/a.test.ts:5:22) <--- Match with Typescript source code ✅
at processImmediate (internal/timers.js:439:21)
同时,对于js测试结果,它会给你第6行。
对于一个小的测试文件,找到问题可能不会太麻烦,但如果我们有很多测试就不是很好了。
在 Web 项目中,TypeScript 用于对整个应用程序、前端和后端以及测试进行编程。然后全部编译部署为JavaScript;
运行 部署期间的测试需要什么。直接在 TypeScript 源代码上 运行 它更有意义吗?或者在生成的 JavaScript(稍后部署到服务器)
上 运行 它更有意义吗请记住,根据它 运行 所处的位置,它对诸如代码覆盖率报告之类的事情有一些小的影响。
一个学派是 运行 它在 TypeScript 源代码上,因为这是程序员正在生成的并且可以直接控制的内容。
另一方面,JavaScript 生成的代码最终会在部署后 运行 秒。
是否有公认的模式?
以前测试过它的js编译代码,后来发现运行对Typescript文件的测试更有意义。主要原因是如果任何测试失败更容易调试,因为我们在同一个 Typescript 文件上编码和测试。
下面是调试失败测试的示例:
⚠️ 见 expect
行号在 Typescript 和编译时有差异 Javascript
test.ts
import { expect } from 'chai';
describe('sum', () => {
it('should return 3', () => {
expect(2 + 1).to.equal(2); // line 5
})
})
及其js编译
"use strict";
exports.__esModule = true;
var chai_1 = require("chai");
describe('a', function () {
it('should return a', function () {
chai_1.expect(2 + 1).to.equal(2); // line 6, different number to its source code
});
});
使用 ts-mocha
对 Typescript 文件的测试结果显示第 5 行的正确问题行号
sum
1) should return 3
0 passing (12ms)
1 failing
1) sum
should return 3:
AssertionError: expected 3 to equal 2
+ expected - actual
-3
+2
at Context.<anonymous> (mocha/65152263/a.test.ts:5:22) <--- Match with Typescript source code ✅
at processImmediate (internal/timers.js:439:21)
同时,对于js测试结果,它会给你第6行。
对于一个小的测试文件,找到问题可能不会太麻烦,但如果我们有很多测试就不是很好了。