Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Testing 集成测试整个*现有*应用程序(自动执行测试套件)_Testing_Continuous Integration_Selenium_Integration Testing_Watir - Fatal编程技术网

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

Testing 集成测试整个*现有*应用程序(自动执行测试套件),testing,continuous-integration,selenium,integration-testing,watir,Testing,Continuous Integration,Selenium,Integration Testing,Watir,我刚刚加入了一个开发现有Java web应用程序的团队。我的任务是创建一个自动化集成测试套件,当开发人员向我们的持续集成服务器(TeamCity)提交承诺时,该套件应该会运行,该服务器会自动部署到我们的登台服务器上——因此,真正的测试将针对我们的登台web应用服务器运行 我读过很多关于使用Watir、Selenium和RWebSpec等框架进行自动化集成测试的文章。我在所有这些方面都做了测试,虽然我更喜欢Watir,但我对任何事情都持开放态度 我还不清楚的是如何为应用程序创建一个完整的测试套件,

我刚刚加入了一个开发现有Java web应用程序的团队。我的任务是创建一个自动化集成测试套件,当开发人员向我们的持续集成服务器(TeamCity)提交承诺时,该套件应该会运行,该服务器会自动部署到我们的登台服务器上——因此,真正的测试将针对我们的登台web应用服务器运行

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

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

有人对如何创建完整的测试套件并使其自动执行有什么建议吗


谢谢

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

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

然后运行文件:

$ ruby tests_1.rb
$ruby all_tests.rb


我不熟悉TeamCity,但您应该能够从中运行所有的_tests.rb。

我最终使用Rspec编写测试,对Watir(准确地说是快速)对象进行断言。这使我能够使用Rake自动化测试的运行。有一些关于将Rspec和Rake一起使用的好文章。我们的构建服务器(teamcity)有Rake任务的钩子,因此工作良好。我花了一段时间把所有的事情都拼凑在一起,所以我想我会在这里发布最终的解决方案

通常,您将使用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
然后它将为整个项目执行所有测试套件。您可以使用以下语法告诉它运行特定测试:

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'

通过这种方式,您可以根据需要在每个测试套件中对测试用例进行排序。

您在什么地方写过这个解决方案吗?
require 'test/unit'
require 'path/relative/to/your/tests/tc_some_test1.rb'
require 'path/relative/to/your/tests/tc_some_test2.rb'