Running Automated Test Suite
This page explains how to run Firebug automated tests. All information on this page are related to Firebug 1.5.
- Use Firebug->Open Test Console menu to open test console window.
- Put http://getfirebug.com/tests/content/testlists/firebug1.6.html URL into the URL bar.
- Press Run All button on the toolbar.
You should see how all tests displayed in the test console are executed step by step. The browser window should automatically load test pages and automate specific steps needed for test execution.
Note: The FBTest extension will be part of the Firebug 'X' (development version) at some point. This means that you'll need to install it only if you want to test Firebug (end user version). This page will be updated as soon as this happens.
Test Console UI
The main purpose of the test console is displaying and executing tests in a test suite. First of all let's see a screenshot of the console. Note that all tests are divided into groups.
You can see a toolbar with following actions:
- Run All Use this button to run all tests from the current test suite.
- Stop Use this button to stop running tests.
- Fail Halt Use this option (two state button) to automatically stop test execution when an error occurs (you need Chromebug 1.5 installed). In such a case Chromebug will automatically switch into the debug mode showing the source line where the error happend. You can continue debugging the test code or put a breakpoint and run the test again.
- Refresh Reloads the current test list.
- No Timeout Use this option to disable timeout on running test. Useful when debugging in Chromebug.
There is also an URL bar that allows to load a test setup file. This file specifies all info necessary to execute the tests. Such a file is included in Firebug distribution and so, if you have Firebug installed you can always load: chrome://firebug/content/testList.html (the default Firebug test setup file).
In order to export all reported failures, just right-click within the Test Console window content and pick Copy All Errors from the context menu. An error report will be copied into the clipboard together with information about current Firebug & Firefox versions, current test-list URL and also version and name of the underlying OS.
Submit Test Results
Firebug test console also allows submitting your test results to an online database. This DB is used mainly by testbot, but can contains also results from users who manually run automated test suite. This DB is consequently monitored by Firebug team members to check whether test are running on various configurations.
Note that submitted into contains list of all installed extensions in the current Firefox profile.
Running Tests From The Command Line
It's also possible to automatically run all tests (or one specific test) from the command line when launching Firefox. The syntax of the parameter is as follows:
Let's see some examples.
Run all default tests afer Firefox is started using the default user profile
firefox -runFBTests chrome://firebug/content/testList.html
Run all default tests after Firefox is started using the dev user profile.
firefox -dev -runFBTests chrome://firebug/content/testList.html
Load chrome://firebug/content/testList.html test setup file and run net/1468/issue1468.js test after Firefox is started using the dev user profile.
firefox -dev -runFBTests chrome://firebug/content/testList.html#net/1468/issue1468.js
Each automated test is typically composed two parts.
- Test Page (*.html) This is a regular web page (often with AJAX code) that represents specific scenario being tested. Since (at least in case of Firebug tests) these pages are available online, the tester can simply load it in the browser (no need for FBTest extension), manually follow described scenario and execute the test without any automation.
Finally, tests can be combined together.
Test List File Structure
The test list file must be implemented as a regular page. Here is an example of such a file.
If you load such a file into the test console, you should see one expandable group with one test.
There are following variables defined in the file.
- baseURI Root directory with all test-drivers.
- serverURI Root directory with all test-cases
- testList List of tests.
Each test in the array has following properties.
- group Name of the parent group where the test belongs to.
- uri Relative path of the test driver
- desc Short summary of the test (displayed in the UI)
- testPage: relative path to the test case file.
In this particular case, both test drivers and test cases are located at https://getfirebug.com/content/ and the directory structure under this root folder would look like as follows:
<root> group1 testDriver1.js testCase1.js
Swarm Testing Procedure
Swarm testing is a semi-automatic test procedure for multiple Firebug extensions.
Swarm Testing Setup
- Firefox (duh!)
- Ant, an Apache build tool
- The build scripts
- You should only need fbug/extensions/swarm/branches/swarm1.6/swarms
- create a local.properties file in the swarms/ folder and define the path to your firefox and the swarm server:
firefox=C:/mozilla/firefox/3.6/firefox/firefox.exe #testListServer=file://c:/Users/johnjbarton/firebug/fbug swarmServer=file://c:/Users/johnjbarton/firebug/fbug/extensions/swarm/branches/swarm1.6
- If you are testing a previous defined swarm, comment out or do not set the swarmServer property. That will use getfirebug.com.
- If you are testing a local new swarm, set the swarmServer to a folder name or a URL if you have a local server.
- Optional, you can set the test list server local for changing tests.
- Run ant with build.xml from the swarms directory (default target is 'test')
- The build script will create a new profile, open the swarm page, and prompt you with a list of extensions to be installed
- Click "Install Now", Firefox will begin downloading extensions
- When Firefox says "Restart", do not do this. Just exit Firefox.
- The build script will immediately run Firefox again, this time with the automatic testing running.
- About half the time Firefox crashes before the tests complete. Just re-run the ant command again.
- A successful run takes about 4 minutes on my computer; Firefox will be going wild.
- When the tests complete, Firefox will ask you to verify that you want to exit. Go to the FBTest window, right click and select "Submit Test Results".
- The save operation will open a new page, copy its URL from the location bar
- If you are defining a new swarm, paste the test result URL in to the bottom of the page around the Tested With words.
- Exit Firefox. It will crash most of the time on exit.
- When you are all done, run the ant build.xml with target "clean". That will erase the temporary profile used for testing.