首页 / 知识
关于jquery:使用JavaScript进行自动单元测试
2023-04-17 08:38:00

Automated Unit Testing with JavaScript我正在尝试将一些JavaScript单元测试合并到我的自动构建过程中。 当前,JSUnit与JUnit可以很好地协作,但是它似乎已经被弃用,并且缺乏对AJAX,调试和超时的良好支持。 有没有人有运气(使用ANT)自动化单元测试库,例如YUI测试,JQuery的QUnit或jQUnit(http://code.google.com/p/jqunit/)? 注意:我使用定制的AJAX库,所以Dojo的DOH的问题在于它要求您使用自己的AJAX函数调用和事件处理程序来进行任何AJAX单元测试。 我即将开始在我正在从事的新项目中执行Javascript TDD。我当前的计划是使用qunit进行单元测试。在开发测试时,只需在浏览器中刷新测试页面即可运行测试。 为了进行持续集成(并确保测试在所有浏览器中运行),我将使用Selenium在每个浏览器中自动加载测试工具,并读取结果。这些测试将在每次签入源控制时运行。 我还将使用JSCoverage进行测试的代码覆盖率分析。 Selenium也将自动执行此操作。 我目前正在进行此设置。一旦设置完成,我将使用更准确的详细信息更新此答案。 测试工具:
有很多javascript单元测试框架(jsUnit,scriptaculous等),但是jsUnit是我所知道的唯一可以与自动构建一起使用的框架。 如果您要进行"真实"的单元测试,则不需要AJAX支持。例如,如果您使用的是诸如DWR之类的RPC ajax框架,则可以轻松编写一个模拟函数:
是的,JsUnit可以处理超时:在jsUnit测试中模拟时间 我是js-test-driver的忠实拥护者 它在CI环境中运行良好,并且能够捕获实际的浏览器以进行跨浏览器测试。 我只是让Hudson CI运行JasmineBDD(无头),至少用于纯JavaScript单元测试。 (Hudson通过外壳运行Java,运行Envjs,运行JasmineBDD。) 不过,我还没有像大型原型库那样在大型图书馆中表现出色。 最近,我读了Bruno的文章,该文章使用JsUnit并在此之上创建了一个JsMock框架...非常有趣。我正在考虑使用他的工作来开始对Javascript代码进行单元测试。 模拟JavaScript或如何在浏览器环境之外进行单元测试Java 我同意jsunit快死了。我们刚刚完成了将其替换为YUI测试。 与使用qUnit的示例相似,我们使用Selenium运行测试。我们独立于其他硒测试而独立运行此测试,只是因为它不具有普通UI回归测试所具有的依赖性(例如,将应用程序部署到服务器)。 首先,我们在所有测试html文件中都包含一个基本的javascript文件。这负责设置YUI实例,测试运行器,YUI.Test.Suite对象以及Test.Case。它具有可以通过Selenium访问的方法来运行测试套件,检查测试运行程序是否仍在运行(结果在完成后才可用),并获取测试结果(我们选择了JSON格式)
至于硒方面,我们使用了参数化测试。我们使用数据方法在IE和FireFox中运行测试,将测试结果解析为Object数组列表,每个数组包含浏览器名称,测试文件名称,测试名称,结果(通过,失败或忽略)和消息。 实际测试只是断言测试结果。如果不等于"通过",则它将通过YUI测试结果返回的消息使测试失败。
我希望这是有帮助的。 看看YUITest
我查看了您的问题日期,然后发现有一些不错的JS测试lib / framework。
此游戏中有很多玩家,例如摩卡,柴,QUnit,茉莉花等。 我已经发布了一个小库,无需使用浏览器即可验证与浏览器相关的JavaScript测试。这是一个使用zombie.js加载测试页并检查结果的node.js模块。我已经在我的博客上写过。这是自动化的样子:
我正在研究的项目使用带有Jasmine-JSTD-Adapter的Chrome 10上的Jasmine托管Js-Test-Driver,包括利用JS-Test-Driver中包含的Code Coverage测试。尽管每次我们在CI环境中更改或更新浏览器时都会遇到一些问题,但是茉莉花测试运行相当顺利,而异步测试只有很小的问题,但是据我所知,使用茉莉花时钟可以解决这些问题,但是我还没有还没有机会修补它们。 有一个新项目,可让您在Java环境(如ant)中运行qunit测试,以便将客户端测试套件与其他单元测试完全集成。 http://qunit-test-runner.googlecode.com 我已使用它对jQuery插件,objx代码,自定义OO JavaScript进行单元测试,并且无需修改即可用于所有内容。 这是对几种测试工具的良好评价。 TDD的JavaScript单元测试工具
我个人更喜欢 我编写了一个Ant任务,该任务使用无头Webkit浏览器Phantom JS在Ant构建过程中运行QUnit html测试文件。如果任何测试失败,它也会使构建失败。 https://github.com/philmander/ant-jstestrunner 可以与Ant一起运行的另一个JS测试框架是CrossCheck。在项目的构建文件中有一个通过Ant运行CrossCheck的示例。 CrossCheck尝试模拟浏览器,但收效甚微,其中包括XMLHttpRequest和超时/间隔的模拟样式实现。 但是,它目前无法处理从网页加载javascript。您必须指定要加载和测试的javascript文件。如果您将所有JS与HTML分开,则可能对您有用。 |
最新内容
相关内容
linux下进程调试命令?
linux下进程调试命令?,系统,工作,软件,信息,命令,基础,地址,状态,进程,实时,Linuxquid安装调试中几个常用命令介绍1、使用mkdir 命令创建一个linux合并行命令行?
linux合并行命令行?,工作,系统,地址,信息,文件,代码,目录,命令,功能,内容,Linux怎么用命令合并多个文件为一个1、将两个文件filetxt和filetxtlinux网口调试命令?
linux网口调试命令?,系统,工作,地址,信息,网络,技术指标,状态,电脑,命令,网卡,ZYNQ+linux网口调试笔记(3)PL-ETH1、在ZYNQ上使用gigE Vision协linux命令合并重复行?
linux命令合并重复行?,地址,文件,系统,命令,代码,工作,基础,内容,两个,控制台,30个必知的Linux命令技巧,你都掌握了吗su:切换用户身份。sudo:以linux合并命令怎么用?
linux合并命令怎么用?,地址,文件,位置,工作,电脑,代码,系统,命令,文档,内容,Linux怎么用命令合并多个文件为一个1、将两个文件filetxt和filetxlinux命令行调试代码?
linux命令行调试代码?,环境,代码,信息,平台,程序,编辑,版本,步骤,体系结构,处理器,linux怎么调试pythonLinux中如何安装Python?安装pycharmPychlinux下单步调试命令?
linux下单步调试命令?,信息,系统,代码,工程,地址,工具,工作,数据,管理,环境,linux系统中怎样单步调试c++工程1、一般工作在命令行模式;c程序的linux串口调试命令?
linux串口调试命令?,设备,数据,信息,数字,系统,标准,通讯,软件,通用,状态,linux中注册了串口设备ttyE0,但是对其cat和echo指令都卡住,无任何反linux合并保存命令行?
linux合并保存命令行?,文件,地址,代码,工作,命令,两个,内容,目录,方法,文件夹,linux中怎么将文件合并1、方法一:使用cat命令从文件中读入两个文linux文件夹合并命令?
linux文件夹合并命令?,文件,对比,第一,下来,命令,文件夹,两个,字段,内容,数组,在linux下我有两个文件夹w1,w2,怎样把它们合并到一个文件夹1、使用linux命令合并?
使用linux命令合并?,文件,代码,工作,命令,内容,两个,目录,方法,麻烦事,发现,linux切分文件命令(split)和合并文件1、[root@localhost databaselinux分区合并命令行?
linux分区合并命令行?,系统,管理,地址,电脑,名字,工具,数据,工作,分区,地方,请问,linux如何合并分区?可以试试Acronis Disk,这个软件在windows