我猜运行测试时可能会跳过.d.ts的生成以提高速度,但生成是保存API基线所必需的。因此,很容易接受和提交不同步的API基线。我不确定这里的最佳解决方案是什么。@jakebailey有什么想法吗?
t5zmwmid1#
嗯,这不应该发生。运行测试任务依赖于dts任务。我故意留下的唯一“漏洞”是当你在vscode中使用启动任务时,因为它直接运行测试套件,我认为这是“可以接受的”,因为这应该是快速的,而且这种方式运行单元测试本身就不太对。在命令行界面上,它应该是准确的。
erhoui1w2#
你是否与--no-typecheck一起运行?如果是,它将跳过dts发射。
--no-typecheck
vqlkdk9b3#
哦,是的,我就是😅
9njqaruj4#
关于dts在runtests通过时是否是依赖项,我可以采取两种方式;它们似乎都有各自的优缺点。完全愿意将其更改为最不令人惊讶的内容,我只是选择了“如果你说--no-typecheck,它永远不会进行类型检查”。但是,显然我们需要这样的信息,例如测试。
dts
runtests
hkmswyz65#
感觉API基线测试与其作为常规测试包含在测试套件中的意义不如以前那么大。由于它具有不同的依赖关系,感觉更干净的长期解决方案是将其作为一个单独的任务/检查。
lmvvr0a86#
我同意。在模块转换中,我没有采用这种方法,因为我试图尽量减少更改,但主要是因为我不确定如何添加这样的测试。打包器是一个脚本,而不是src中的某个东西,所以我不太确定如何组织它,何时运行等。
src
我想我们的测试已经依赖于从scripts导入某些内容(failed-tests.cjs),所以让它运行打包器并比较输出或类似的东西并不是不可能的。
scripts
mrzz3bfm7#
鉴于bundler不是自包含的,需要构建系统运行以生成输入的d.ts文件,我更倾向于让runtests始终依赖于dts,无论是否提供了--no-typecheck,并保持这个作为单元测试的状态。至少,这将完成可能的最小类型检查(仅对typescript.d.ts和tsserverlibrary.d.ts需要),对我来说似乎可以接受。但是,我不确定我们想在哪里划定界限;现实是这些测试将不得不在某个地方进行类型检查,我不知道是否想让测试工具能够运行hereby ...
typescript.d.ts
tsserverlibrary.d.ts
hereby
7条答案
按热度按时间t5zmwmid1#
嗯,这不应该发生。运行测试任务依赖于dts任务。我故意留下的唯一“漏洞”是当你在vscode中使用启动任务时,因为它直接运行测试套件,我认为这是“可以接受的”,因为这应该是快速的,而且这种方式运行单元测试本身就不太对。在命令行界面上,它应该是准确的。
erhoui1w2#
你是否与
--no-typecheck
一起运行?如果是,它将跳过dts发射。vqlkdk9b3#
哦,是的,我就是😅
9njqaruj4#
关于
dts
在runtests
通过时是否是依赖项,我可以采取两种方式;它们似乎都有各自的优缺点。完全愿意将其更改为最不令人惊讶的内容,我只是选择了“如果你说--no-typecheck
,它永远不会进行类型检查”。但是,显然我们需要这样的信息,例如测试。hkmswyz65#
感觉API基线测试与其作为常规测试包含在测试套件中的意义不如以前那么大。由于它具有不同的依赖关系,感觉更干净的长期解决方案是将其作为一个单独的任务/检查。
lmvvr0a86#
我同意。在模块转换中,我没有采用这种方法,因为我试图尽量减少更改,但主要是因为我不确定如何添加这样的测试。打包器是一个脚本,而不是
src
中的某个东西,所以我不太确定如何组织它,何时运行等。我想我们的测试已经依赖于从
scripts
导入某些内容(failed-tests.cjs),所以让它运行打包器并比较输出或类似的东西并不是不可能的。mrzz3bfm7#
鉴于bundler不是自包含的,需要构建系统运行以生成输入的d.ts文件,我更倾向于让
runtests
始终依赖于dts
,无论是否提供了--no-typecheck
,并保持这个作为单元测试的状态。至少,这将完成可能的最小类型检查(仅对typescript.d.ts
和tsserverlibrary.d.ts
需要),对我来说似乎可以接受。但是,我不确定我们想在哪里划定界限;现实是这些测试将不得不在某个地方进行类型检查,我不知道是否想让测试工具能够运行hereby
...