如何在同一代码库/ package.json中包含Mocha和Karma测试(服务器端和客户端)?

查理·施利瑟(Charlie Schliesser)

我在中有2个测试文件./test

假设test1.js有一个Mocha测试,它启动服务器并针对URI运行各种请求,以确定它们的行为均符合预期。

test2.js是使用噶负载特定的脚本(包括摩卡测试angular-mocks.js),并运行在一些浏览器,以确保所有的功能预期的行为。

package.json我有test这样配置属性:

"scripts": {
  "test": "./node_modules/.bin/mocha --reporter spec -t 5000"
},

npm test酷了,我可以从命令行运行Mocha。但是,哦,是的,Mocha同时运行了我的两个脚本,并且test2.js当然使整个事情崩溃了,因为其中的逻辑假定它在Karma的上下文中运行(对不起,如果我没有正确描述的话)。

我可以有2个测试文件夹,test等等test-ng,但我认为最终我希望能够npm test并运行不同的测试集,即:

"./node_modules/.bin/mocha --reporter spec -t 5000"
"./node_modules/.bin/karma start"

并将它们配置为每个运行正确的js文件。我一直在寻找像疯了一样寻找到客户端和服务器端的测试在同一回购存在的例子,但我只找到的教程和博客等以证明一方或另一方。有人可以在正确的方向帮助我吗?

编辑:我应该考虑/组织这样的测试吗?

./tests/server/**.js
./tests/e2e/**.js
./tests/unit/**.js

我也许是基于默认情况下npm使用./test/文件夹的事实做出假设

编辑2:我现在正在或多或少地进行上述操作,并在回购自述文件中描述了我的测试,例如:

可以通过Karma运行角单元测试: ./node_modules/.bin/karma start karma.conf.js

可以通过量角器运行有角度的端到端测试: ./node_modules/.bin/protractor protractor.conf.js

Express单元测试可以通过Mocha运行: ./node_modules/.bin/mocha ...

所以现在我根本不使用它npm test,我想知道使用它有什么好处。

J.P

您可以将以下内容放入您的package.json

"scripts": {
  "unittest": "mocha --reporter spec tests/test1.js",
  "browsertest": "mocha --reporter spec -t 5000 tests/test2.js",
  "test": "npm run unittest && npm run browsertest"
}

并让Mocha(或Karma等)每个都有一个脚本,例如,可以分别运行。

$ npm run browsertest

将构建系统的所有部分直接放入package.json中的脚本有很多好处:

  • 您可以避免在全球范围内安装npm软件包,也可以避免使用类似的咒语./node_modules/.bin/mocha,因为npm已经知道./node_modules/.bin
  • 把一切都变成NPM脚本可以很容易地增加标准NPM操作(startstoptest等),这反过来又使得它更容易与其他人协作,人以及框架(如的Phusion客运)。
  • 您不需要Grunt,Gulp等。

您可以npm run用来获取脚本列表。

有关优点的更详尽描述,请参见Keith Cirkel的精彩博客文章

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将Step Function和Lamda存储在同一代码提交存储库中

来自分类Dev

如何在MATLAB中一次使用同一代码中的两个数据集?

来自分类Dev

JavaScript:在服务器端和客户端都执行DOM依赖代码的最佳做法?

来自分类Dev

JavaScript:在服务器端和客户端都执行DOM依赖代码的最佳做法?

来自分类Dev

有关JWT(服务器端和客户端)的一些基本问题

来自分类Dev

如何在服务器端拆分JSON,然后在客户端加入并流式传输

来自分类Dev

如何在cakePHP 3.x中接收从客户端发送到服务器端的JSON

来自分类Dev

如何使用Rmarkdown / Knitr从同一代码行返回紧凑的head()和tail()结果?

来自分类Dev

如何使用Rmarkdown / Knitr从同一代码行返回紧凑的head()和tail()结果?

来自分类Dev

在Meteor中,如何在服务器端完成操作时在客户端知道?

来自分类Dev

如何在OpenVPN中与服务器端共享客户端Internet连接?

来自分类Dev

如何从流星中的客户端调用服务器端功能

来自分类Dev

如何从流星中的客户端调用服务器端功能

来自分类Dev

为什么在C和Java中针对同一代码显示不同的行为?

来自分类Dev

如何使用 Eclipse 在 C++ 中测试和运行客户端服务器程序

来自分类Dev

为什么不能在同一代码中使用函数“ pack”和“ grid”

来自分类Dev

来自同一代码,不同站点,同一服务器上的TypeLoadException?

来自分类Dev

如何在Firebase中的服务器和客户端之间使时间戳相同?

来自分类Dev

如何在javascript(客户端)和java(服务器)中完成WebSocket握手?

来自分类Dev

结合使用Meteor和Angular2 / Typescript,如何基于客户端事件从服务器端代码调用外部Web服务?

来自分类Dev

如何模拟服务器响应-服务器端客户端

来自分类Dev

我可以/应该在同一代码库中同时支持Node.js和Typescript吗?

来自分类Dev

Alfresco中的存储库层VS Web层VS服务器端VS客户端端

来自分类Dev

Alfresco中的存储库层VS Web层VS服务器端VS客户端端

来自分类Dev

UDP中的一台服务器和多客户端聊天框

来自分类Dev

我可以在同一程序中编写服务器和客户端代码并运行它们吗?

来自分类Dev

从服务器端(从另一个容器)和客户端(浏览器)使用相同的URL引用Docker容器

来自分类Dev

如何从服务器端C#代码触发客户端JavaScript?

来自分类Dev

如何从服务器端C#代码触发客户端JavaScript?

Related 相关文章

  1. 1

    将Step Function和Lamda存储在同一代码提交存储库中

  2. 2

    如何在MATLAB中一次使用同一代码中的两个数据集?

  3. 3

    JavaScript:在服务器端和客户端都执行DOM依赖代码的最佳做法?

  4. 4

    JavaScript:在服务器端和客户端都执行DOM依赖代码的最佳做法?

  5. 5

    有关JWT(服务器端和客户端)的一些基本问题

  6. 6

    如何在服务器端拆分JSON,然后在客户端加入并流式传输

  7. 7

    如何在cakePHP 3.x中接收从客户端发送到服务器端的JSON

  8. 8

    如何使用Rmarkdown / Knitr从同一代码行返回紧凑的head()和tail()结果?

  9. 9

    如何使用Rmarkdown / Knitr从同一代码行返回紧凑的head()和tail()结果?

  10. 10

    在Meteor中,如何在服务器端完成操作时在客户端知道?

  11. 11

    如何在OpenVPN中与服务器端共享客户端Internet连接?

  12. 12

    如何从流星中的客户端调用服务器端功能

  13. 13

    如何从流星中的客户端调用服务器端功能

  14. 14

    为什么在C和Java中针对同一代码显示不同的行为?

  15. 15

    如何使用 Eclipse 在 C++ 中测试和运行客户端服务器程序

  16. 16

    为什么不能在同一代码中使用函数“ pack”和“ grid”

  17. 17

    来自同一代码,不同站点,同一服务器上的TypeLoadException?

  18. 18

    如何在Firebase中的服务器和客户端之间使时间戳相同?

  19. 19

    如何在javascript(客户端)和java(服务器)中完成WebSocket握手?

  20. 20

    结合使用Meteor和Angular2 / Typescript,如何基于客户端事件从服务器端代码调用外部Web服务?

  21. 21

    如何模拟服务器响应-服务器端客户端

  22. 22

    我可以/应该在同一代码库中同时支持Node.js和Typescript吗?

  23. 23

    Alfresco中的存储库层VS Web层VS服务器端VS客户端端

  24. 24

    Alfresco中的存储库层VS Web层VS服务器端VS客户端端

  25. 25

    UDP中的一台服务器和多客户端聊天框

  26. 26

    我可以在同一程序中编写服务器和客户端代码并运行它们吗?

  27. 27

    从服务器端(从另一个容器)和客户端(浏览器)使用相同的URL引用Docker容器

  28. 28

    如何从服务器端C#代码触发客户端JavaScript?

  29. 29

    如何从服务器端C#代码触发客户端JavaScript?

热门标签

归档