detro/phantomjs-jasminexml-example

此包的最新版本(dev-master)没有提供许可证信息。

一个PhantomJS / jasminexml JavaScript测试示例

dev-master 2015-03-02 12:43 UTC

This package is not auto-updated.

Last update: 2024-09-22 02:36:57 UTC


README

警告 - 警告 - 警告

当我写这个时,我的目的是发布一个PhantomJS、Maven和Jasmine之间集成的示例。我没有维护另一个项目的意愿,而且我发现很多人把它当作一个项目。

以此为例,然后按照自己的方式前进。我已经关闭了问题跟踪器。

顺便说一句:是的,我可能应该以Gist的形式发布这个...

PhantomJS - Jasmine XML - 示例项目结构

描述

这是一个示例项目结构,它使用JasminePhantomJS之上实现JavaScript单元测试。

它设计用于独立使用或在Maven中使用。

应该与PhantomJS版本 >=2.2.0 正确工作。

独立使用

$ phantomjs test/phantomjs_jasminexml_runner.js test/test_runner.html xml_output_dir/

这将生成一组XML输出,每个Jasmine测试套件一个。

在Maven中使用

该项目已经提供了一个pom.xml文件,它可以完成这项工作。所以简单的

$ mvn test

$ mvn clean install

将启动测试,如果所有测试都通过,则使mvn构建通过。如果任何测试失败,则mvn构建失败。

内部机制

在这里解释PhantomJS的内部机制是没有意义的,但为了理解它是如何工作的,你需要理解一个简单的想法:PhantomJS提供了一个主要的“JavaScript上下文”,用户可以在其中“孵化”一个WebPage,从而有效地创建另一个“JavaScript上下文”。

新的上下文具有以下特征

  • 隔离 - 页面不知道任何关于phantom和phantom API的信息
  • 可控制 - 主要phantom上下文提供了API来控制/影响页面上下文

那么,它是如何工作的呢?

这个“魔法”由两个脚本完成

test/phantomjs_jasminexml_runner.js
test/lib/jasmine-reporters/jasmine.phantomjs-reporter.js

jasmine.phantomjs-reporter.js是Jasmine的一个插件,它将测试结果保存到运行测试的网页底部。

phantomjs_jasminexml_runner.js则负责运行测试,从页面中提取结果,然后将其保存到指定的目录(见源代码)。

祝您测试愉快 ;-)

许可:公有领域

此项目的代码在公有领域下发布,因此您不需要做任何事情,只需使用和享受它。

如果您出于好意想在您的工作中提及这个项目作为“灵感”,请随时这样做。但您没有义务这样做。