我如何从NodeJS / Expressnetworking应用程序运行CasperJS / PhantomJStesting?

问题重申:

我们如何通过运行NodeJS / Express / AngularJS的Web应用dynamic触发,运行并从CasperJS / PhantomJStesting中获取结果?

背景和调查:

让我先说这个问题,说我明白在这个问题上也有类似的问题,我已经尽力在阅读/理解方面尽职尽责。

我相信我的问题有点不同,因为我知道PhantomJS和NodeJS由于各种原因并不固有地协同工作。 曾经有过各种试图在NodeJS和PhantomJS之间“桥接”的项目。 总是出现的是phantomjs-node 。

然而,正如那个应用程序的作者所指出的,有很多的问题,PhantomJS的首席开发人员(我相信)已经表示他们不会支持NodeJS。

得到它了。 但是,有很多testing运行者似乎提供NodeJS集成并利用PhantomJS。 例如GruntJS可以利用MochaJStesting,而这些testing又可以调用JasmineJS,这显然可以通过PhantomJS来利用。

挑战/差异

我不想testing我的webapp,这似乎是唯一的用例大多数教程和问题围绕着社区。 我的用例是testing其他网站,已经生活适当的一个Web应用程序的整合。

为此,我有一个完整的NodeJS / Express / AngularJS应用程序,这是一个基于Web的testing和报告套件,我想集成CasperJS / PhantomJStesting结果。 我希望能够dynamic地将我的AngularJS前端的URL传递给我的NodeJS / Express服务器,然后它将触发我的CasperJS / PhantomJStesting,并以我可以包含在我的AngularJS报告前端中的方式返回结果。

通过从NodeJS调用单独的进程可能的解决scheme

我已经看到引用,但我现在找不到,调用一个“命令”生成一个单独的进程从NodeJS运行PhantomJS。 这是实现我的目标的最好方法(如果可能的话,我不想使用NodeJS / PhantomJS桥接器之一,告诉我我是否过于封闭)?

通过摩卡的潜在解决scheme visionmedia.github.io/mocha/

我看了看Mocha,看起来很有希望,他们的标语是“Mocha是一个运行在node.js和浏览器上的function丰富的JavaScripttesting框架”。 但是,他们没有提供任何将这些testing引入像我这样的dynamicWeb应用程序的例子。 他们总是从假设您正在testing您的应用程序的立场出发,您将在您的应用程序之外运行一系列testing,而不是在您的应用程序中运行,正如我打算这样做的。

摩卡浏览器支持这部分看起来特别有前途。 看来我可能会在我的前端使用这个触发我的摩卡testing,对吧?

感谢您的所有帮助提前! 我很新的testing,所以我的头在这里游泳。

[编辑] 相关的问题,这不是100%回答我的问题

是否有可能从node.js运行PhantomJS作为命令行参数

使用PhantomJS和node.js保存并呈现网页

生成的node.jssubprocess的输出逐行parsing