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