用于VSCode外部的npm:如何清理/重建测试文件



问题

npm run test运行不存在的测试
A.k.A:npm run testnpm run compilenpm run rebuild不会删除旧的、不再存在的测试文件。

背景

我正在为VSCode开发一个扩展(使用typescript)。我在不同的文件中设置了几个自动测试。在这个过程的后期,我删除了一些测试文件。然而,npm run test似乎没有意识到测试被删除的事实,也就是说,它仍然运行测试。删除测试文件文件后,npm run test仍将运行这些文件中包含的测试(可能是因为它们的javascript等价物仍在编译文件区域中)

具体示例工作流

以下是示例测试文件:

  • test1.test.ts,包含test1
  • test2.test.ts,包含test2
  • test3.test.ts,包含test3

他们(可能)会编译成类似的东西

  • test1.test.js
  • test2.test.js
  • test3.test.js

我运行npm run test,执行test1test2test3

我删除了test1.test.tstest2.test.ts

我运行npm run compilenpm run rebuild

我运行npm run testtest1test2test3得到执行,即使test2test3应该被删除

问题

如何使npm删除不应该再存在的文件?

我遇到了同样的问题,并执行了以下步骤:

更新tsconfig.json并添加以下行(如果您使用标准构建,这意味着编译的js文件位于"out"目录中)

"outDir": "out"

在包.json 中替换以下脚本定义

"compile-tests": "tsc -p . --outDir out"

带有

"compile-tests": "tsc -b --clean && tsc -b"

请注意,这只会清除typescript编译器知道的已编译文件。孤立的js文件(没有原来的.ts)似乎仍然存在。在这种情况下,您必须回到rm -rf(另请参阅此处"如何从以前的typescript(.ts)文件中删除已编译的JS文件?")

更新:我最终也使用了rimraf(见链接的答案),这有一个更干净的结果。

相关内容

  • 没有找到相关文章

最新更新