首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集成测试整个*现有*应用程序(自动执行测试套件)

集成测试整个*现有*应用程序(自动执行测试套件)
EN

Stack Overflow用户
提问于 2010-05-24 07:55:40
回答 3查看 861关注 0票数 5

我刚刚加入了一个开发现有Java web应用程序的团队。我的任务是创建一个自动化集成测试套件,当开发人员提交到我们的持续集成服务器(TeamCity)时,该测试套件应该运行,该服务器会自动部署到我们的临时服务器上-所以实际上测试将在我们的临时web应用服务器上运行。

我读过很多关于使用Watir、Selenium和RWebSpec等框架进行自动化集成测试的文章。我已经在所有这些方面创建了测试,虽然我更喜欢Watir,但我对任何事情都持开放态度。

我还不清楚的是,如何为应用程序创建完整的测试套件,以及如何在执行某些脚本时完整地执行该套件。我可以很高兴地创建不同复杂性的单独测试,但我的知识在如何将所有东西结合在一起成为有用的东西方面存在差距。

有没有人对如何创建一个完整的测试套件并让它自动执行有什么建议?

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-22 23:43:26

通常,您将使用Rake自动执行测试。假设您正在使用Test::Unit进行测试,您将使用以下内容设置您的Rakefile:

代码语言:javascript
复制
require 'rubygems'
require 'rake'
require 'rake/testtask'

Rake::TestTask.new do |t|
  t.libs << "test"
  t.test_files = FileList.new 'test/**/ts_*.rb'.sort
  t.loader = :rake
  t.verbose = true
end

默认情况下,这将配置项目" test“文件夹下的所有测试套件文件。然后,您可以使用以下命令运行它们:

代码语言:javascript
复制
rake test

然后,它将执行整个项目的所有测试套件。您可以使用以下语法告诉它运行特定的测试:

代码语言:javascript
复制
rake TEST=path/under/test/folder/tc_filename.rb test

由于您使用的是TeamCity,因此可以创建一个构建并使用Rake runner来执行您的测试套件。TeamCity将提取所有测试信息(输出、堆栈跟踪等)。添加到UI中,就像使用JUnit一样。这是一个非常好的集成。

作为参考,您的测试套件将如下所示:

代码语言:javascript
复制
require 'test/unit'
require 'path/relative/to/your/tests/tc_some_test1.rb'
require 'path/relative/to/your/tests/tc_some_test2.rb'

这样,您就可以根据需要对每个测试套件中的测试用例进行排序。

票数 2
EN

Stack Overflow用户

发布于 2010-05-30 16:05:28

我最终使用Rspec编写了测试,以便对Watir (准确地说是Celerity)对象进行断言。这使我能够使用Rake自动运行测试。有一些很好的文章是关于同时使用Rspec和Rake的。我们的构建服务器(teamcity)有用于Rake任务的钩子,所以它工作得很好。我花了一段时间把所有的东西拼凑在一起,所以我想我应该在这里发布最终的解决方案。

票数 1
EN

Stack Overflow用户

发布于 2010-05-24 16:26:25

要运行文件中的Watir测试,只需运行以下文件:

代码语言:javascript
复制
$ ruby tests_1.rb

要在多个文件中执行测试,请运行所有文件。您可以创建一个将运行所有这些命令的文件(例如all_tests.rb):

代码语言:javascript
复制
load "tests_1.rb"
load "tests_2.rb"

然后运行该文件:

$ ruby all_tests.rb

我不熟悉TeamCity,但您应该能够在它上运行all_tests.rb。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2894029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档