我想在服务器上即时进行单元测试,而无需编写临时文件。是否可以将要测试的代码和单元测试都传递到npm test
?
npm测试文档有点空白(https://docs.npmjs.com/cli/test)。
另外,如果有其他解决方案,也不必是npm test
。
谢谢你, 詹斯
答案 0 :(得分:5)
npm test
只是执行npm
程序包的测试套件的一种便捷方法,而不必担心套件的运行方式的细节。如果在没有scripts
的{{1}}条目的项目上运行它,则会得到test
。如果您为此设置Error: no test specified
:
package.json
然后{
"scripts": {
"test": "echo This is a test!"
}
}
将回显到控制台npm test
。您在真实项目中所做的事情是设置一个脚本来启动 real 测试工具。例如,This is a test!
是一个测试运行程序,因此一旦安装,您就可以:
mocha
或者您可以拥有Karma,Jest或水龙头,或者您拥有什么。
您在悬赏通知中写道:
某些网站提供在线JavaScript代码测试,它们是否真的用用户代码写出临时文件以通过npm test进行单元测试?
提供在线测试的网站提供非常不同的服务。 因此,根据您指的是哪种在线测试服务,答案有时是肯定的,有时是否。
Travis-ci提供一项服务,可在其服务器上运行您的整个测试。为此,它从git存储库中检出了受测分支,因此,是的,他们正在获取用户代码的副本。请注意,这与您设置运行 "scripts": {
"test": "mocha"
}
的测试运行程序完全无关:无论运行Mocha还是Karma,还是其他原因,Travis都会检出被测试的分支,然后运行npm test
。
SauceLabs和BrowserStack本身不会运行套件,而是提供启动浏览器进行测试的虚拟机。您的测试套件仍在您的计算机上运行。因此,他们不会获得正在测试的代码的副本。同样,您使用哪个跑步者也没有关系。我已经通过Mocha,Karma,Behave等使用这些服务运行套件。
现在关注您的标题:
如何将代码和单元测试传递给npm测试?
我不知道要测试的代码管道的测试设置。提供测试代码的最常见方法是测试,而测试本身就是结帐像Travis一样从存储库中获取代码。 (请注意,这不需要将您的代码公开。测试服务可以与私有存储库一起使用。)