selenium-rspec-dsl 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/common/shared/common.rb +167 -0
- data/config/aggregate_reports.rb +124 -0
- data/config/array_extension.rb +13 -0
- data/config/multi_process_behaviour_runner.rb +50 -0
- data/config/selenium-setup.rb +32 -0
- data/config/site_config.rb +8 -0
- data/sites/button.rb +31 -0
- data/sites/buttonAjax.rb +14 -0
- data/sites/buttonJQuery.rb +26 -0
- data/sites/buttonMultiWindow.rb +99 -0
- data/sites/buttonNonLoad.rb +11 -0
- data/sites/checkbox.rb +22 -0
- data/sites/checkboxExtjs.rb +10 -0
- data/sites/checkboxGwt.rb +24 -0
- data/sites/dropdown.rb +28 -0
- data/sites/dropdownAjax.rb +40 -0
- data/sites/dropdownExtjs.rb +32 -0
- data/sites/dropdownJQuery.rb +40 -0
- data/sites/dropdownLoad.rb +25 -0
- data/sites/element.rb +172 -0
- data/sites/form.rb +7 -0
- data/sites/image.rb +7 -0
- data/sites/label.rb +32 -0
- data/sites/link.rb +32 -0
- data/sites/linkMultiWindow.rb +160 -0
- data/sites/linkNonLoad.rb +11 -0
- data/sites/listbox.rb +16 -0
- data/sites/page.rb +16 -0
- data/sites/panel.rb +7 -0
- data/sites/radiobutton.rb +10 -0
- data/sites/tabPanel.rb +7 -0
- data/sites/table.rb +48 -0
- data/sites/tableExtjs.rb +42 -0
- data/sites/test/googleResults_screen.rb +15 -0
- data/sites/test/googleSearch_screen.rb +27 -0
- data/sites/textbox.rb +16 -0
- data/sites/tree.rb +7 -0
- data/sites/treeGwt.rb +32 -0
- data/spec/spec.opts +6 -0
- data/spec/spec_helper.rb +40 -0
- data/spec/test/testPass_spec.rb +36 -0
- data/spec/test/testPending_spec.rb +13 -0
- data/vendor/selenium-client-1.2.17/README.markdown +328 -0
- data/vendor/selenium-client-1.2.17/examples/rspec/google_spec.rb +41 -0
- data/vendor/selenium-client-1.2.17/examples/script/google.rb +25 -0
- data/vendor/selenium-client-1.2.17/examples/testunit/google_test.rb +39 -0
- data/vendor/selenium-client-1.2.17/lib/nautilus/shell.rb +32 -0
- data/vendor/selenium-client-1.2.17/lib/selenium.rb +14 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client.rb +27 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/base.rb +118 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/driver.rb +11 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/extensions.rb +118 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/generated_driver.rb +1711 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/idiomatic.rb +488 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/javascript_expression_builder.rb +116 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/javascript_frameworks/jquery.rb +13 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/javascript_frameworks/prototype.rb +13 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/protocol.rb +96 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/selenium_helper.rb +34 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/command_error.rb +4 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/protocol_error.rb +4 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rake/default_tasks.rb +16 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rake/remote_control_start_task.rb +70 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rake/remote_control_stop_task.rb +44 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rake/tasks.rb +6 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/remote_control/remote_control.rb +33 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rspec/reporting/file_path_strategy.rb +78 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rspec/reporting/html_report.rb +123 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rspec/reporting/selenium_test_report_formatter.rb +87 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rspec/reporting/system_capture.rb +72 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rspec/rspec_extensions.rb +96 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rspec/spec_helper.rb +35 -0
- data/vendor/selenium-client-1.2.17/lib/tcp_socket_extension.rb +32 -0
- data/vendor/selenium-client-1.2.17/test/all_unit_tests.rb +3 -0
- data/vendor/selenium-grid-1.0.4/Capfile +107 -0
- data/vendor/selenium-grid-1.0.4/README +10 -0
- data/vendor/selenium-grid-1.0.4/Rakefile +190 -0
- data/vendor/selenium-grid-1.0.4/build.xml +182 -0
- data/vendor/selenium-grid-1.0.4/doc/resources/Multiple Environments Demo Setup.svg +518 -0
- data/vendor/selenium-grid-1.0.4/doc/resources/Multiple Machine Demo Setup.svg +371 -0
- data/vendor/selenium-grid-1.0.4/doc/resources/Rakefile +18 -0
- data/vendor/selenium-grid-1.0.4/doc/resources/Requesting a Specific Environment.svg +576 -0
- data/vendor/selenium-grid-1.0.4/doc/resources/Selenium Grid Setup.svg +539 -0
- data/vendor/selenium-grid-1.0.4/doc/resources/Selenium Grid.css +68 -0
- data/vendor/selenium-grid-1.0.4/doc/resources/Traditional Selenium Setup.svg +295 -0
- data/vendor/selenium-grid-1.0.4/doc/website/Rakefile +37 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Multiple Environment Demo Setup - Small.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Multiple Environment Demo Setup.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Multiple Machine Demo Setup - Small.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Multiple Machine Demo Setup.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Requesting a Specific Environment - Small.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Requesting a Specific Environment.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Selenium Grid Logo.graffle +1015 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Selenium Grid Setup - Small.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Selenium Grid Setup.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Traditional Selenium Setup - Small.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Traditional Selenium Setup.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/faq.markdown +686 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/ant_version_osx_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/ant_version_win_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/background_better.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/background_feedback.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/background_participate.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/background_start_tracks.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/background_started.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/check_path_osx_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/check_path_win_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/dot_profile_editing_osx_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/dot_profile_osx_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-ant-install.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-ant-profile-update.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-ant-verify.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-ant-version.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-java-version.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-navigate-path.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-selenium-install.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-selenium-sanity-check.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install/win/selenium-check.bmp +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install_ant_osx_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/installing_grid_osx_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/java_version_osx_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/java_version_win_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/sanity_check_osx_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/sanity_check_win_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo-huge-white.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo-huge.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo-large.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo-small.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/selenium_grid_logo_large.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/update_path_win_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/javascripts/shadedborder.js +267 -0
- data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/document.css +82 -0
- data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/faq.css +97 -0
- data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/home.css +133 -0
- data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/openqa.css +72 -0
- data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/site.css +74 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/Capfile +276 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/etc/background.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/etc/background.svg +163 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/cloud.rb +35 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/ec2.rb +7 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/ec2_client.rb +54 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/hub.rb +22 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/remote_command.rb +47 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/server.rb +56 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/all_test.rb +2 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/cloud_test.rb +27 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/ec2_client_test.rb +137 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/hub_test.rb +24 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/remote_command_test.rb +46 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/server_test.rb +22 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/test_helper.rb +4 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/vnc_password +1 -0
- data/vendor/selenium-grid-1.0.4/examples/java/Java Example.iml +18 -0
- data/vendor/selenium-grid-1.0.4/examples/java/build.xml +90 -0
- data/vendor/selenium-grid-1.0.4/examples/java/src/com/thoughtworks/selenium/grid/examples/java/GoogleImageTestBase.java +46 -0
- data/vendor/selenium-grid-1.0.4/examples/java/src/com/thoughtworks/selenium/grid/examples/java/ParisTest.java +50 -0
- data/vendor/selenium-grid-1.0.4/examples/java/src/com/thoughtworks/selenium/grid/examples/java/PerigordTest.java +42 -0
- data/vendor/selenium-grid-1.0.4/examples/java/target/classes/com/thoughtworks/selenium/grid/examples/java/GoogleImageTestBase.class +0 -0
- data/vendor/selenium-grid-1.0.4/examples/java/target/classes/com/thoughtworks/selenium/grid/examples/java/ParisTest.class +0 -0
- data/vendor/selenium-grid-1.0.4/examples/java/target/classes/com/thoughtworks/selenium/grid/examples/java/PerigordTest.class +0 -0
- data/vendor/selenium-grid-1.0.4/examples/java/testng-slow.xml +9 -0
- data/vendor/selenium-grid-1.0.4/examples/java/testng.xml +9 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/README +66 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/Rakefile +101 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/Ruby Example.iml +17 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/flickr_example.rb +16 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/lib/array_extension.rb +13 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/lib/multi_process_behaviour_runner.rb +28 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/paris_spec.rb +34 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/perigord_spec.rb +22 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/spec_helper.rb +59 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_04b8969da99c51289f692b41abbf271b_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_04b8969da99c51289f692b41abbf271b_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_280fd974268e3aecb89fbfbee25b5322_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_280fd974268e3aecb89fbfbee25b5322_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_8808fb9026e023f809d50ddc9cf00cd3_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_8808fb9026e023f809d50ddc9cf00cd3_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_94b209474d36add5ba908f308c63aa15_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_94b209474d36add5ba908f308c63aa15_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_a18dd8ce90cb4681d55b2148326ff085_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_a18dd8ce90cb4681d55b2148326ff085_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_b877a400a718a915c95038427389e0d9_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_b877a400a718a915c95038427389e0d9_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_c1c6e8109e89867b52f6e123b8847b85_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_c1c6e8109e89867b52f6e123b8847b85_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_c9e7156818e496f6abb983a9a1725295_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_c9e7156818e496f6abb983a9a1725295_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_d6b2848186a7e4a73e19692c0fab2ae5_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_d6b2848186a7e4a73e19692c0fab2ae5_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_e30337afe445f0b6ebd29ecfaf4cd9f0_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_e30337afe445f0b6ebd29ecfaf4cd9f0_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_edc2da92cbf119e95eae988bb6f80792_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_edc2da92cbf119e95eae988bb6f80792_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/grid_configuration.yml +46 -0
- data/vendor/selenium-grid-1.0.4/lib/build/common-build.xml +228 -0
- data/vendor/selenium-grid-1.0.4/lib/ruby/file_extensions.rb +9 -0
- data/vendor/selenium-grid-1.0.4/lib/ruby/java/classpath.rb +28 -0
- data/vendor/selenium-grid-1.0.4/lib/ruby/java/vm.rb +31 -0
- data/vendor/selenium-grid-1.0.4/lib/ruby/s_grid/hub.rb +29 -0
- data/vendor/selenium-grid-1.0.4/lib/ruby/s_grid/remote_control.rb +40 -0
- data/vendor/selenium-grid-1.0.4/lib/ruby/tcp_socket_extensions.rb +23 -0
- data/vendor/selenium-grid-1.0.4/lib/selenium-grid-demo-1.0.4.jar +0 -0
- data/vendor/selenium-grid-1.0.4/lib/selenium-grid-demo-standalone-1.0.4.jar +0 -0
- data/vendor/selenium-grid-1.0.4/lib/selenium-grid-hub-1.0.4.jar +0 -0
- data/vendor/selenium-grid-1.0.4/lib/selenium-grid-hub-standalone-1.0.4.jar +0 -0
- data/vendor/selenium-grid-1.0.4/lib/selenium-grid-remote-control-1.0.4.jar +0 -0
- data/vendor/selenium-grid-1.0.4/lib/selenium-grid-remote-control-standalone-1.0.4.jar +0 -0
- data/vendor/selenium-grid-1.0.4/lib/selenium-grid-tools-1.0.4.jar +0 -0
- data/vendor/selenium-grid-1.0.4/lib/selenium-grid-tools-standalone-1.0.4.jar +0 -0
- data/vendor/selenium-grid-1.0.4/lib/testng.policy +11 -0
- data/vendor/selenium-grid-1.0.4/log/test.txt +1 -0
- data/vendor/selenium-grid-1.0.4/project.properties +4 -0
- data/vendor/selenium-grid-1.0.4/sample-scripts/kill-rcs.sh +3 -0
- data/vendor/selenium-grid-1.0.4/sample-scripts/launch-rc.sh +4 -0
- data/vendor/selenium-grid-1.0.4/sample-scripts/launch-rcs.sh +5 -0
- data/vendor/selenium-grid-1.0.4/sample-scripts/launch-remote-controls.rb +20 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/Command line test.html +218 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/classes.html +44 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/groups.html +5 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/index.html +6 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/main.html +2 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/methods-alphabetical.html +12 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/methods-not-run.html +2 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/methods.html +12 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/reporter-output.html +1 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/testng.xml.html +1 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/toc.html +30 -0
- data/vendor/selenium-grid-1.0.4/target/reports/emailable-report.html +117 -0
- data/vendor/selenium-grid-1.0.4/target/reports/index.html +9 -0
- data/vendor/selenium-grid-1.0.4/vendor/commons-logging-1.0.4.jar +0 -0
- data/vendor/selenium-grid-1.0.4/vendor/selenium-java-client-driver-1.0.1.jar +0 -0
- data/vendor/selenium-grid-1.0.4/vendor/selenium-server-1.0.3.jar +0 -0
- data/vendor/selenium-grid-1.0.4/vendor/testng-5.7-jdk15.jar +0 -0
- metadata +296 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + "/test_helper"
|
|
2
|
+
|
|
3
|
+
unit_tests do
|
|
4
|
+
|
|
5
|
+
test "url return the public url where the hub can be contacted" do
|
|
6
|
+
hub = SeleniumGrid::AWS::Hub.new nil
|
|
7
|
+
hub.public_dns = "public.dns"
|
|
8
|
+
assert_equal "http://public.dns:4444", hub.url
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
test "private_url return the private url where the hub can be contacted" do
|
|
12
|
+
hub = SeleniumGrid::AWS::Hub.new nil
|
|
13
|
+
hub.private_dns = "private.dns"
|
|
14
|
+
assert_equal "http://private.dns:4444", hub.private_url
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
test "console_url return the public url of the hub console" do
|
|
18
|
+
hub = SeleniumGrid::AWS::Hub.new nil
|
|
19
|
+
hub.public_dns = "public.dns"
|
|
20
|
+
assert_equal "http://public.dns:4444/console", hub.console_url
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + "/test_helper"
|
|
2
|
+
|
|
3
|
+
unit_tests do
|
|
4
|
+
|
|
5
|
+
test "ssh_command builds ssh based command targetting the host" do
|
|
6
|
+
command = SeleniumGrid::AWS::RemoteCommand.new "ls", :host => "the.host"
|
|
7
|
+
assert_equal "ssh root@the.host", command.ssh_command
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
test "ssh_command use custom key when keypair options is provided" do
|
|
11
|
+
command = SeleniumGrid::AWS::RemoteCommand.new "ls",
|
|
12
|
+
:host => "the.host", :keypair => "/the/key.pair"
|
|
13
|
+
assert_equal "ssh -i '/the/key.pair' root@the.host", command.ssh_command
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
test "remote_command" do
|
|
17
|
+
command = SeleniumGrid::AWS::RemoteCommand.new "ls", :pwd => "/a/directory"
|
|
18
|
+
assert_equal "cd '/a/directory'; ls", command.remote_command
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
test "remote_command set path when path is provided as an option" do
|
|
22
|
+
command = SeleniumGrid::AWS::RemoteCommand.new "ls", :path => "/a/directory:and/another"
|
|
23
|
+
assert_equal "PATH=/a/directory:and/another:${PATH}; export PATH; ls", command.remote_command
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
test "remote_command set display when display is provided as an option" do
|
|
27
|
+
command = SeleniumGrid::AWS::RemoteCommand.new "ls", :display => ":0"
|
|
28
|
+
assert_equal "DISPLAY=:0; export DISPLAY; ls", command.remote_command
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
test "full_command execute the remote command using ssh_command" do
|
|
32
|
+
command = SeleniumGrid::AWS::RemoteCommand.new nil
|
|
33
|
+
command.stubs(:ssh_command).returns("the_ssh_command")
|
|
34
|
+
command.stubs(:remote_command).returns("the remote command")
|
|
35
|
+
assert_equal "the_ssh_command 'the remote command'", command.full_command
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
test "full_command wraps remote_command with 'su user -c' when su option is set" do
|
|
39
|
+
command = SeleniumGrid::AWS::RemoteCommand.new nil, :su => "a-user"
|
|
40
|
+
command.stubs(:ssh_command).returns("the_ssh_command")
|
|
41
|
+
command.stubs(:remote_command).returns("the remote command")
|
|
42
|
+
assert_equal "the_ssh_command \"su -l a-user -c 'the remote command'\"",
|
|
43
|
+
command.full_command
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + "/test_helper"
|
|
2
|
+
|
|
3
|
+
unit_tests do
|
|
4
|
+
|
|
5
|
+
test "refresh_status updates public dns" do
|
|
6
|
+
server = SeleniumGrid::AWS::Server.new :an_instance_id
|
|
7
|
+
SeleniumGrid::AWS::Server.expects(:describe).with(:an_instance_id).
|
|
8
|
+
returns(:public_dns => :new_public_dns)
|
|
9
|
+
server.refresh_status
|
|
10
|
+
assert_equal :new_public_dns, server.public_dns
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
test "refresh_status updates private dns" do
|
|
14
|
+
server = SeleniumGrid::AWS::Server.new :an_instance_id
|
|
15
|
+
SeleniumGrid::AWS::Server.expects(:describe).with(:an_instance_id).
|
|
16
|
+
returns(:private_dns => :new_private_dns)
|
|
17
|
+
server.refresh_status
|
|
18
|
+
assert_equal :new_private_dns, server.private_dns
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
����YI
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<module relativePaths="true" type="JAVA_MODULE" version="4">
|
|
3
|
+
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
|
4
|
+
<exclude-output />
|
|
5
|
+
<content url="file://$MODULE_DIR$">
|
|
6
|
+
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
|
7
|
+
</content>
|
|
8
|
+
<orderEntry type="inheritedJdk" />
|
|
9
|
+
<orderEntry type="sourceFolder" forTests="false" />
|
|
10
|
+
<orderEntry type="library" name="Selenium Java Client Driver" level="project" />
|
|
11
|
+
<orderEntry type="library" name="TestNG" level="project" />
|
|
12
|
+
<orderEntry type="module" module-name="Tools" />
|
|
13
|
+
</component>
|
|
14
|
+
<component name="RSpecModuleSettingsStorage">
|
|
15
|
+
<RSPEC_MODULE_SETTINGS_STORAGE_ID NAME="RSPEC_SUPPORT_TYPE" VALUE="NONE" />
|
|
16
|
+
</component>
|
|
17
|
+
</module>
|
|
18
|
+
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
<project name="Selenium Grid Java Example" default="run" basedir=".">
|
|
2
|
+
|
|
3
|
+
<description>Selenium Grid Java Example</description>
|
|
4
|
+
|
|
5
|
+
<property name="rootdir" value="${basedir}/../.."/>
|
|
6
|
+
<property file="${rootdir}/project.properties"/>
|
|
7
|
+
<property name="name" value="Selenium Grid Demo"/>
|
|
8
|
+
<property name="artifact" value="selenium-grid-demo"/>
|
|
9
|
+
<property name="version" value="SNAPSHOT"/>
|
|
10
|
+
<property name="selenium.version" value="SET ME"/>
|
|
11
|
+
|
|
12
|
+
<property name="build.src" location="src"/>
|
|
13
|
+
|
|
14
|
+
<import file="${rootdir}/lib/build/common-build.xml" />
|
|
15
|
+
|
|
16
|
+
<property name="webSite" value="http://images.google.com" />
|
|
17
|
+
<property name="seleniumHost" value="localhost" />
|
|
18
|
+
<property name="seleniumPort" value="4444" />
|
|
19
|
+
<property name="browser" value="*firefox" />
|
|
20
|
+
|
|
21
|
+
<path id="compile.classpath">
|
|
22
|
+
<fileset dir="${rootdir}/vendor">
|
|
23
|
+
<include name="selenium-java-client-driver-${selenium.version}.jar"/>
|
|
24
|
+
<include name="testng-5.7-jdk15.jar"/>
|
|
25
|
+
<include name="commons-logging-1.0.4.jar"/>
|
|
26
|
+
</fileset>
|
|
27
|
+
<pathelement location="${rootdir}/tools/target/classes"/>
|
|
28
|
+
<pathelement location="${rootdir}/tools/target/dist/lib/selenium-grid-tools-standalone-${version}.jar"/>
|
|
29
|
+
<pathelement location="${rootdir}/lib/selenium-grid-tools-standalone-${version}.jar"/>
|
|
30
|
+
<pathelement path="${java.class.path}/"/>
|
|
31
|
+
</path>
|
|
32
|
+
|
|
33
|
+
<path id="runtime.classpath">
|
|
34
|
+
<path refid="compile.classpath"/>
|
|
35
|
+
<pathelement path="${build.output}/"/>
|
|
36
|
+
</path>
|
|
37
|
+
|
|
38
|
+
<target name="run" depends="compile" description="Run Selenium tests in parallel (20 threads)">
|
|
39
|
+
<echo>${seleniumHost}</echo>
|
|
40
|
+
<java classpathref="runtime.classpath"
|
|
41
|
+
classname="org.testng.TestNG"
|
|
42
|
+
failonerror="true">
|
|
43
|
+
|
|
44
|
+
<sysproperty key="java.security.policy" file="${rootdir}/lib/testng.policy"/>
|
|
45
|
+
<sysproperty key="webSite" value="${webSite}" />
|
|
46
|
+
<sysproperty key="seleniumHost" value="${seleniumHost}" />
|
|
47
|
+
<sysproperty key="seleniumPort" value="${seleniumPort}" />
|
|
48
|
+
<sysproperty key="browser" value="${browser}" />
|
|
49
|
+
<arg value="-d" />
|
|
50
|
+
<arg value="${basedir}/target/reports" />
|
|
51
|
+
<arg value="-suitename" />
|
|
52
|
+
<arg value="Selenium Grid Java Sample Test Suite" />
|
|
53
|
+
<arg value="-parallel"/>
|
|
54
|
+
<arg value="methods"/>
|
|
55
|
+
<arg value="-threadcount"/>
|
|
56
|
+
<arg value="15"/>
|
|
57
|
+
<arg value="testng.xml"/>
|
|
58
|
+
</java>
|
|
59
|
+
|
|
60
|
+
</target>
|
|
61
|
+
|
|
62
|
+
<target name="run-in-sequence" depends="compile" description="Run Selenium tests in sequence">
|
|
63
|
+
<echo>${seleniumHost}</echo>
|
|
64
|
+
<java classpathref="runtime.classpath"
|
|
65
|
+
classname="org.testng.TestNG"
|
|
66
|
+
failonerror="true">
|
|
67
|
+
|
|
68
|
+
<sysproperty key="java.security.policy" file="${rootdir}/lib/testng.policy"/>
|
|
69
|
+
<sysproperty key="webSite" value="${webSite}" />
|
|
70
|
+
<sysproperty key="seleniumHost" value="${seleniumHost}" />
|
|
71
|
+
<sysproperty key="seleniumPort" value="${seleniumPort}" />
|
|
72
|
+
<sysproperty key="browser" value="${browser}" />
|
|
73
|
+
<arg value="-d" />
|
|
74
|
+
<arg value="${basedir}/target/reports" />
|
|
75
|
+
<arg value="-suitename" />
|
|
76
|
+
<arg value="Selenium Grid Java Sample Test Suite" />
|
|
77
|
+
<arg value="-parallel"/>
|
|
78
|
+
<arg value="methods"/>
|
|
79
|
+
<arg value="-threadcount"/>
|
|
80
|
+
<arg value="20"/>
|
|
81
|
+
<arg value="testng-slow.xml"/>
|
|
82
|
+
</java>
|
|
83
|
+
|
|
84
|
+
</target>
|
|
85
|
+
|
|
86
|
+
<target name="build" depends="compile"/>
|
|
87
|
+
<target name="dist" depends="build"/>
|
|
88
|
+
<target name="coverage-analysis" />
|
|
89
|
+
|
|
90
|
+
</project>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
package com.thoughtworks.selenium.grid.examples.java;
|
|
2
|
+
|
|
3
|
+
import static com.thoughtworks.selenium.grid.tools.ThreadSafeSeleniumSessionStorage.closeSeleniumSession;
|
|
4
|
+
import static com.thoughtworks.selenium.grid.tools.ThreadSafeSeleniumSessionStorage.session;
|
|
5
|
+
import static com.thoughtworks.selenium.grid.tools.ThreadSafeSeleniumSessionStorage.startSeleniumSession;
|
|
6
|
+
import static org.testng.AssertJUnit.assertTrue;
|
|
7
|
+
import org.testng.annotations.AfterMethod;
|
|
8
|
+
import org.testng.annotations.BeforeMethod;
|
|
9
|
+
import org.testng.annotations.Parameters;
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Base class for all tests in Selenium Grid Java examples.
|
|
14
|
+
*/
|
|
15
|
+
public class GoogleImageTestBase {
|
|
16
|
+
|
|
17
|
+
public static final String TIMEOUT = "120000";
|
|
18
|
+
|
|
19
|
+
@BeforeMethod(groups = {"default", "example"}, alwaysRun = true)
|
|
20
|
+
@Parameters({"seleniumHost", "seleniumPort", "browser", "webSite"})
|
|
21
|
+
protected void startSession(String seleniumHost, int seleniumPort, String browser, String webSite) throws Exception {
|
|
22
|
+
startSeleniumSession(seleniumHost, seleniumPort, browser, webSite);
|
|
23
|
+
session().setTimeout(TIMEOUT);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@AfterMethod(groups = {"default", "example"}, alwaysRun = true)
|
|
27
|
+
protected void closeSession() throws Exception {
|
|
28
|
+
closeSeleniumSession();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
protected void runFlickrScenario(String searchString) {
|
|
32
|
+
session().open("/");
|
|
33
|
+
assertTrue(session().getLocation(), session().getLocation().contains("images.google.com"));
|
|
34
|
+
session().type("q", searchString);
|
|
35
|
+
session().click("btnG");
|
|
36
|
+
session().waitForPageToLoad(TIMEOUT);
|
|
37
|
+
session().click("link=Advanced Image Search");
|
|
38
|
+
session().waitForPageToLoad(TIMEOUT);
|
|
39
|
+
session().click("rimgtype4");
|
|
40
|
+
session().click("sf");
|
|
41
|
+
session().select("imgc", "full color");
|
|
42
|
+
session().click("btnG");
|
|
43
|
+
session().waitForPageToLoad(TIMEOUT);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
package com.thoughtworks.selenium.grid.examples.java;
|
|
2
|
+
|
|
3
|
+
import org.testng.annotations.Test;
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
*/
|
|
8
|
+
public class ParisTest extends GoogleImageTestBase {
|
|
9
|
+
|
|
10
|
+
@Test(groups = {"example", "firefox", "default"}, description = "Louvre")
|
|
11
|
+
public void louvre() throws Throwable {
|
|
12
|
+
runFlickrScenario("Louvre");
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@Test(groups = {"example", "firefox", "default"}, description = "Louvre")
|
|
16
|
+
public void rubinius() throws Throwable {
|
|
17
|
+
runFlickrScenario("Louvre");
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@Test(groups = {"example", "firefox", "default"}, description = "Pont Neuf")
|
|
21
|
+
public void pontNeuf() throws Throwable {
|
|
22
|
+
runFlickrScenario("Pont Neuf");
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@Test(groups = {"example", "firefox", "default"}, description = "Notre Dame de Paris")
|
|
26
|
+
public void notreDameDeParis() throws Throwable {
|
|
27
|
+
runFlickrScenario("Notre Dame de Paris");
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@Test(groups = {"example", "firefox", "default"}, description = "Versailles")
|
|
31
|
+
public void versailles() throws Throwable {
|
|
32
|
+
runFlickrScenario("Versailles");
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@Test(groups = {"example", "firefox", "default"}, description = "Seine by Night")
|
|
36
|
+
public void seine() throws Throwable {
|
|
37
|
+
runFlickrScenario("Seine by Night");
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@Test(groups = {"example", "firefox", "default"}, description = "Tour Eiffel")
|
|
41
|
+
public void tourEiffel() throws Throwable {
|
|
42
|
+
runFlickrScenario("Tour Eiffel");
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@Test(groups = {"example", "firefox", "default"}, description = "Avenue des Champs Elysees")
|
|
46
|
+
public void champsElysees() throws Throwable {
|
|
47
|
+
runFlickrScenario("Avenue des Champs Elysees");
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
package com.thoughtworks.selenium.grid.examples.java;
|
|
2
|
+
|
|
3
|
+
import org.testng.annotations.Test;
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
*/
|
|
8
|
+
public class PerigordTest extends GoogleImageTestBase {
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@Test(groups = {"example", "firefox", "default"}, description = "Lascaux Hall of the Bull")
|
|
12
|
+
public void rubinius() throws Throwable {
|
|
13
|
+
runFlickrScenario("Lascaux Hall of the Bull");
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@Test(groups = {"example", "firefox", "default"}, description = "Sarlat")
|
|
17
|
+
public void pontNeuf() throws Throwable {
|
|
18
|
+
runFlickrScenario("Sarlat");
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@Test(groups = {"example", "firefox", "default"}, description = "Cathedral in Perigueux")
|
|
22
|
+
public void notreDameDeParis() throws Throwable {
|
|
23
|
+
runFlickrScenario("Cathedral in Perigueux");
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@Test(groups = {"example", "firefox", "default"}, description = "Montbazillac")
|
|
27
|
+
public void versailles() throws Throwable {
|
|
28
|
+
runFlickrScenario("Montbazillac");
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@Test(groups = {"example", "firefox", "default"}, description = "Domme - La Halle Fleurie")
|
|
32
|
+
public void domme() throws Throwable {
|
|
33
|
+
runFlickrScenario("Domme - La Halle Fleurie");
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@Test(groups = {"example", "firefox", "default"}, description = "Rouffignac")
|
|
37
|
+
public void rouffignac() throws Throwable {
|
|
38
|
+
runFlickrScenario("Rouffignac");
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
|
|
2
|
+
|
|
3
|
+
<suite name="Selenium Grid Java Sample Test Suite" verbose="3" >
|
|
4
|
+
<test name="Selenium Grid Java Sample Tests" >
|
|
5
|
+
<packages>
|
|
6
|
+
<package name="com.thoughtworks.selenium.grid.examples.java" />
|
|
7
|
+
</packages>
|
|
8
|
+
</test>
|
|
9
|
+
</suite>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
|
|
2
|
+
|
|
3
|
+
<suite name="Selenium Grid Java Sample Test Suite" parallel="methods" thread-count="7" verbose="3" >
|
|
4
|
+
<test name="Selenium Grid Java Sample Tests" >
|
|
5
|
+
<packages>
|
|
6
|
+
<package name="com.thoughtworks.selenium.grid.examples.java" />
|
|
7
|
+
</packages>
|
|
8
|
+
</test>
|
|
9
|
+
</suite>
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
Example using RSpec based web acceptance tests
|
|
2
|
+
|
|
3
|
+
This example demonstrates how to run tests in parallel to take advantage
|
|
4
|
+
of Selenium Grid functionalities.
|
|
5
|
+
|
|
6
|
+
Getting Ready
|
|
7
|
+
-------------
|
|
8
|
+
|
|
9
|
+
To run this example you will need:
|
|
10
|
+
|
|
11
|
+
* Have a valid Ruby install: http://www.ruby-lang.org
|
|
12
|
+
* Have RubyGems installed : http://rubygems.org
|
|
13
|
+
* Install the RSpec gem : `sudo gem install rspec`
|
|
14
|
+
This example has been tested with RSpec 1.0.8
|
|
15
|
+
* Install the Spec UI gem : `sudo gem install spec_ui`
|
|
16
|
+
Spec UI provides some nice reporting for Selenium tests
|
|
17
|
+
|
|
18
|
+
You are probably better off running this example on Mac OS X or another
|
|
19
|
+
UNIX platform. Be prepared to get your hands dirty if you run this on
|
|
20
|
+
Windows, this has not been tested yet.
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
Running the Tests
|
|
24
|
+
-----------------
|
|
25
|
+
|
|
26
|
+
To run the tests you must first launch a Selenium Hub and 4 Selenium
|
|
27
|
+
remote controls as explained in the Demo:
|
|
28
|
+
http://seleniumhq.org/selenium-grid/run_the_demo.html
|
|
29
|
+
|
|
30
|
+
You can then:
|
|
31
|
+
|
|
32
|
+
* Run the tests in sequence:
|
|
33
|
+
|
|
34
|
+
$ rake run_in_sequence
|
|
35
|
+
|
|
36
|
+
* Run the tests in parallel using Brian Takita's Multi-threaded runner:
|
|
37
|
+
(only guaranted to work with RSpec 1.0.8 r2338)
|
|
38
|
+
|
|
39
|
+
$ rake run_in_parallel_single_process
|
|
40
|
+
|
|
41
|
+
* Run the tests in parallel spawning multiple processes:
|
|
42
|
+
|
|
43
|
+
$ rake run_in_parallel
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
Note that for a realistic web acceptance test suite, running tests in
|
|
47
|
+
parallel using Ruby green threads does not scale very well so I recommend
|
|
48
|
+
using the multi-process runner in real life. The multi-threaded runner is
|
|
49
|
+
very cool though, and should scale well with JRuby.
|
|
50
|
+
|
|
51
|
+
For now only RSpec behaviours, not RSpec examples run in parallel
|
|
52
|
+
(i.e files, not tests). We are working on a better solution that can
|
|
53
|
+
efficiently run RSpec examples in parallel.
|
|
54
|
+
|
|
55
|
+
Reporting
|
|
56
|
+
---------
|
|
57
|
+
|
|
58
|
+
This example also demonstrate how to get some pretty cool reporting
|
|
59
|
+
based on Spec UI. This is very useful to troubleshoot failures
|
|
60
|
+
when your web acceptance build turns red: You get screenshots and HTML
|
|
61
|
+
capture of the current page when a test fails. Pretty cool when tests are
|
|
62
|
+
distributed using Selenium Grid! Make sure to take a look at the ./report
|
|
63
|
+
directory after running `rake run_in_parallel`. Even better: change a
|
|
64
|
+
specification so that a test fails, launch `rake run_in_parallel` and
|
|
65
|
+
look at the new aggregated report.
|
|
66
|
+
|