为什么手动运行测试时,计算机可以为你做!自动测试是一个伟大的工具,以加快测试驱动用Ruby或Ruby on Rails的发展。
自动测试,甚至使你的编码会话更有效率,因为它会自动运行您的测试套件,每次更改一个文件的一个子集。自动测试是智能-数字的子集上运行你修改过的文件的基础。把它看成是连续测试。
自动测试的源代码是记录良好(RDOC),但找到一个高层次的概述在线是一个更具挑战性的一点。本文将帮助你在任何时间运行,使您可以集中精力编写代码。让我们开始吧!
1。为什么自动测试?
1.1连续测试。
关于自动测试很酷的事情是,你有你的代码的即时反馈(在一秒钟内运行测试)。更妙的是,测试发生在自己的,所以你再也不用来回切换了从编码方面的测试内容(既明智的认知,从UI的角度来看)。这对你的代码,以及自动化和无人值守的测试运行的轻松和即时反馈Martin Fowler的传奇介绍球队的水平在持续集成的特点非常相似。然而,持续集成,专注于提高集成在一个团队水平而自动测试集中于促进发展为一个单一的开发者(或编程)对之前的代码被集成-因此长期连续测试。
由于这是高度可视化,在Nuby看看Rails的自动测试截屏。
1.2更快的测试运行
自动测试还可以提供更快的测试运行,比标准的公约,因为它智能监控的变化和运行测试,这些变化的影响。在实践中,这是有关经典的Rails应用程序,因为 :
Rails约定提供了良好的启发式自动测试,以决定运行哪些测试文件变化时。如果您的应用程序不拘泥于经典的Rails布局和命名约定的魔力不那么好了工作 。在这种情况下,它可能是更好的自动测试所有更改运行整个测试套件。
值子集运行整个测试套件运行不仅是因为经典的Rails单元测试可能会很慢。这主要是因为Rails的单元测试方法是相当标新立异,并涉及到数据库访问 。这种做法违背一般的敏捷的智慧,你应该确保你的单元测试快速运行,并没有任何外部系统的依赖。另外请注意,有记录的方式有你的Rails单元测试不依赖于数据库和,让他们运行速度极快!
1.3弥补缺乏一个适当的Ruby IDE
自动测试可以派上用场,如果您喜欢的IDE Ruby的支持有限,或者如果你喜欢一个更轻量级的开发环境(文本编辑器+终端+自动测试):它给你一个简单和自动化的方式来运行测试。
2,安装自动测试
2.1。确保您已经有RubyGem安装
安装自动测试最简单的方法是使用ZenTest的宝石 。如果您有没有一个“红宝石宝石”是什么想法,或者你还没有安装RubyGem包装系统,请有在看RubyGem官方网站。
相信我,如果你对Ruby开发严重,这将是很难不使用RubyGem。
2.2 OS X和Linux
在OS X或任何其他的UNIX系统,你通常用下面的命令安装ZenTest:
sudo的创业板安装ZenTest
如果你打算做任何的Ruby on Rails开发,你还需要安装自动测试的Rails插件:
sudo的创业板安装自动测试导轨
3,运行自动测试
3.1Ruby on Rails项目。
与Rails的原则,自动测试,不需要任何配置来运行 。只要你遵守约定经典的Rails,自动测试将图事情本身。只需启动你的Ruby on Rails项目的基本目录的自动测试。
你的Ruby on Rails的项目> $ CD
$自动测试
自动测试将运行所有的测试(第一次),并等待你修改一些代码:
$自动测试
/ usr/bin/ruby1.8我:LIB:测试-rtest/unit - E“%W [测试/功能/ tasks_controller_test.rb测试/单位/ quarter_test.rb测试/单位/ task_test.rb]每个{ | F |求购信息F}“| unit_diff - U
加载套件- E
入门
在0.672928秒完成。
** 23的测试,60断言,0失败,0个错误**
继续前进,一些项目中的代码修改,使测试失败。修改后的文件保存到磁盘和自动测试会自动重新运行一些测试 :
/ usr/bin/ruby1.8我:LIB:测试-rtest/unit - E“%W [测试/功能/ tasks_controller_test.rb测试/单位/ task_test.rb]每个{| F |要求F}” | unit_diff - U
加载套件- E
入门
... ...楼.......
在0.42272秒完成。
故障原因:1)
(TaskTest)test_should_be_found [**./测试/单位/ task_test.rb:22 **]:
原文转自:http://www.uml.org.cn/Test/201112301.asp