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

标签 testing continuous-integration selenium integration-testing watir

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

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

我还不清楚的是如何为应用程序创建完整的测试套件,以及如何在执行某些脚本时让该套件完整地执行。我可以愉快地创建复杂程度各异的单独测试,但我对如何将所有内容组合成有用的东西的知识存在差距。

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

谢谢!

最佳答案

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

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”文件夹下配置所有测试套件文件。然后您可以使用以下命令运行它们:

rake test

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

rake TEST=path/under/test/folder/tc_filename.rb test

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

作为引用,您的测试套件看起来像这样:

require 'test/unit'
require 'path/relative/to/your/tests/tc_some_test1.rb'
require 'path/relative/to/your/tests/tc_some_test2.rb'

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

关于testing - 集成测试整个*现有*应用程序(自动执行测试套件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2894029/

相关文章:

scala - 使用 SBT 依赖项的 `test` 配置的类路径

continuous-integration - 是否可以在 Hudson 中通过修订来参数化 subversion 存储库 URL?

java - 在命令提示符下运行 jar 文件。 Java在类路径中找不到库

Java 测试 : Massively generate mock objects by running your code

iPhone内存测试

continuous-integration - CRM 2011在线插件上传程序以支持CI

python - 如何使用 Python 访问我的 Firefox 配置文件中的页面

ruby - capybara first() 仅在我添加 :minimum=>1 时有效

node.js - Node 精简服务器 : how to route a request to the contents of an arbitrary file

c# - C# travis 的问题