重新提问:
我们如何通过运行NodeJS / Express / AngularJS的网络应用程序动态触发,运行并从CasperJS / PhantomJS测试中获取结果?
背景和调查:
让我先说一下这个问题,我知道围绕这个问题提出了类似的问题,我已经尽力对阅读/理解做了尽职调查。
我相信我的问题有点不同,因为我知道PhantomJS和NodeJS由于各种原因本身并不一致。已经有各种项目尝试在NodeJS和PhantomJS之间“桥接”。总是出现的是phantomjs-node。
然而,正如该应用程序的作者指出存在无数问题而且PhantomJS的主要开发人员(我相信)表示他们不会支持NodeJS。
知道了。然而,有很多测试跑步者似乎提供NodeJS集成并利用PhantomJS。例如,GruntJS可以利用MochaJS测试,而这些测试又可以调用JasmineJS,显然可以通过PhantomJS进行测试。
挑战/差异
我不想测试我的webapp,这似乎是社交中大多数教程和问题的唯一用例。我的用例是测试其他站点,这些站点已经存在,可以正常集成Web应用程序。
为此,我有一个完整的NodeJS / Express / AngularJS应用程序,它是一个基于Web的测试和报告套件,我想整合CasperJS / PhantomJS测试结果。我希望能够动态地将一个URL从我的AngularJS前端传递到我的NodeJS / Express服务器,然后它将触发我的CasperJS / PhantomJS测试并以我可以包含在AngularJS报告前端中的方式返回结果
通过从NodeJS调用单独的进程
的潜在解决方案我已经看到了引用,虽然我现在找不到,但是调用“命令”来生成一个单独的进程来运行NodeJS中的PhantomJS。这是实现目标的最佳方式(如果可能的话,我不想使用其中一个NodeJS / PhantomJS桥,请告诉我,我是否过于封闭)?
通过Mocha的潜在解决方案 visionmedia.github.io/mocha /
我看过Mocha,看起来很有希望,他们的标语是“Mocha是一个在node.js和浏览器上运行的功能丰富的JavaScript测试框架。”但是,他们没有提供任何将这些测试纳入像我这样的动态网络应用程序中的示例。它们总是来自假设您正在测试您的应用程序的立场,并且您将在应用程序之外而不是在您的应用程序中运行一系列测试,正如我打算那样。
这部分看起来特别有希望与Mocha Browser Support。看来我可能会在我的前端使用它来触发我的Mocha测试,对吗?
提前感谢您的帮助!我对测试很陌生,所以我的脑袋在这里游泳。
[编辑] 相关问题,不能100%回答我的问题
Is it possible to run PhantomJS from node.js as a command line argument