m (→Installation) |
m |
||
Line 2: | Line 2: | ||
'''CKTester''' is our internal testing hub, created to provide seamless and integrated testing experience to our developers, been capable of managing and interfacing tests from various projects which may potentially rely on different testing frameworks/runners. Been designed with convenient authoring and ease of viewing the test cases in mind, it could be running independently in all situation from a browser : locally, on a web server or via secure connections. | '''CKTester''' is our internal testing hub, created to provide seamless and integrated testing experience to our developers, been capable of managing and interfacing tests from various projects which may potentially rely on different testing frameworks/runners. Been designed with convenient authoring and ease of viewing the test cases in mind, it could be running independently in all situation from a browser : locally, on a web server or via secure connections. | ||
+ | |||
+ | == How It Works == | ||
+ | |||
+ | === Test Cell === | ||
+ | |||
+ | A '''test cell''' is the basic unit of a project's testing, a plain HTML file reside in individual project's testing source, in which test suites/cases | ||
+ | are written. It will be loaded and executed inside an iframe or popup window depends on the running of choice, so '''full page life cycle''' | ||
+ | ( from page load to page destroy ) is guaranteed. | ||
+ | |||
+ | Each cell has one key responsibility of '''reporting''' the sucess/failure/time of it's execution to the fort, this is | ||
+ | done by cross-frame communication with parent/opener window. For this, the cell is required to include a bootstrap file: | ||
+ | <pre> | ||
+ | <script type="text/javascript" src="{CKTester_ROOT}/bootstrap.js"></script> | ||
+ | </pre> | ||
+ | |||
+ | The cell's entire testing environment, including testing target, runtime libraries, etc. will mostly be injected by the fort, | ||
+ | which are declared by a meta tag of the HTML file. | ||
+ | <pre> | ||
+ | // I'm a unit test for the editor(CKEditor) and the TCs within me are stable( been finalized ). | ||
+ | <meta name="tags" content="editor,unit,stable"> | ||
+ | </pre> | ||
+ | |||
+ | A cell could be running in '''two modes''': | ||
+ | # Managed Mode : It's the default mode when it's running in a batch of cells by the forge, where the cell is running in an iframe. | ||
+ | # Standalone Mode : When a cell is running separately, on the opposite of 'Managed Mode', the cell will be running inside a popup window, this is | ||
+ | often used when it's a manual test case or detailed information about the TCs is required to be reviewed( e.g. which exactly test method failed in the TC? ). | ||
+ | |||
== Installation == | == Installation == |
Revision as of 09:02, 24 September 2009
Overview
CKTester is our internal testing hub, created to provide seamless and integrated testing experience to our developers, been capable of managing and interfacing tests from various projects which may potentially rely on different testing frameworks/runners. Been designed with convenient authoring and ease of viewing the test cases in mind, it could be running independently in all situation from a browser : locally, on a web server or via secure connections.
How It Works
Test Cell
A test cell is the basic unit of a project's testing, a plain HTML file reside in individual project's testing source, in which test suites/cases are written. It will be loaded and executed inside an iframe or popup window depends on the running of choice, so full page life cycle ( from page load to page destroy ) is guaranteed.
Each cell has one key responsibility of reporting the sucess/failure/time of it's execution to the fort, this is done by cross-frame communication with parent/opener window. For this, the cell is required to include a bootstrap file:
<script type="text/javascript" src="{CKTester_ROOT}/bootstrap.js"></script>
The cell's entire testing environment, including testing target, runtime libraries, etc. will mostly be injected by the fort, which are declared by a meta tag of the HTML file.
// I'm a unit test for the editor(CKEditor) and the TCs within me are stable( been finalized ). <meta name="tags" content="editor,unit,stable">
A cell could be running in two modes:
- Managed Mode : It's the default mode when it's running in a batch of cells by the forge, where the cell is running in an iframe.
- Standalone Mode : When a cell is running separately, on the opposite of 'Managed Mode', the cell will be running inside a popup window, this is
often used when it's a manual test case or detailed information about the TCs is required to be reviewed( e.g. which exactly test method failed in the TC? ).
Installation
Note: Below we'll take the CKEditor project as an example to illustrate the install process.
First of all, checking out these three component: the staging project, it's test suites and CKTester eventually.
- Checkout CKEditor's testing branch from SVN ( We name the working copy path as CKEDITOR_TEST_ROOT below ).
- Checkout CKEditor trunk( or any other version are subjected to test ) from SVN into a folder ( e.g. ckeditor ) under CKEDITOR_TEST_ROOT ( We name the working copy path as CKEDITOR_ROOT below ).
- Checkout CKTester from SVN into a folder( e.g. cktester ) under CKEDITOR_TEST_ROOT( We name the working copy path as CKTESTER_ROOT below ).
Open the file {CKTESTER_ROOT}/variables.js.tpl with modification to the following variables:
// Absolute path point to the root path of CKEditor project. 'CKEDITOR_ROOT' : '/ckeditor', // Point to the root path of CKEditor test branch. ( You don't need to alter it if your web server's serving root from CKEDITOR_TEST_ROOT. 'CKEDITOR_TEST_BRANCH_ROOT' : '/'
At last, run the script {CKTESTER_ROOT}/_dev/gen-profile.bat(.sh) ( you'll need install Apache Ant ) which helps you to generate the testing profile automatically by scanning the resources within {CKEDITOR_TEST_ROOT}. After that, you'll get a file created at {CKTESTER_ROOT}/template.js which looks basically like:
CKTESTER.fort.getProfile = function () { return { cells : [ // Generated cell paths... ], cellResolvers : [ // Some Default cell resolvers. ] }; };
It's done, now point your web browser at {CKEDITOR_TEST_ROOT}/index.html, a few pilot links there to kick start you testing.
Common Tasks
History
CKTester is evolved from previous project FCKTest.