我来讲讲它是如何与 Ant 相结合的。 这个 JsUnit 提供了一个 JUnit 的 TestCase: net.jsunit.StandaloneTest 这个 TestCase 可以在 JUnit 的 TestSuite 或者 Ant 的 junit 任务中调用。在测试过程中,它会自动打开某种浏览器(IE、FireFox、etc.),运行所有的测试用例,然后关闭浏览器,将返回结果输出到命令行并且保存到与 JUnit 格式完全相同的 xml 报表文件中。 JsUnit 有两种工作方式,本地 standalone_test 方式和远程 distributed_test 方式,上面讲的是 standalone_test 方式。对于 distributed_test 方式情况要复杂一些。使用的是另外一个 JUnit 的 TestCase: net.jsunit.DistributedTest JsUnit 提供了几个 Servlet,需要部署到远程的 Web Server 上,叫做 JsUnit Server。JsUnit Client(就是 DistributedTest 对象)将测试请求发送到远程 JsUnit Sever,远程的 JsUnit Sever 自动打开该机器上的浏览器,运行所有的测试用例,然后关闭浏览器,将返回结果送回给 JsUnit Client,JsUnit Client将返回结果输出到命令行并且保存到与 JUnit 格式完全相同的 xml 报表文件中。
通过以上的两种方式,JsUnit 可以测试任何操作系统+浏览器的组合,并且可以以命令行方式执行所有的测试用例。然后我们就可以更进一步将对于 JS 代码的自动测试集成到持续集成工具(CC、AntHill、etc.)之中了。
|