Test Suites

(Difference between revisions)

Jump to: navigation, search
(Updated wrt adopting the µfxtract test-fixture format)
Current revision (17:18, 2 December 2012) (view source)
(update header warning)
 
(10 intermediate revisions not shown.)
Line 1: Line 1:
<entry-title>Test Suites</entry-title>
<entry-title>Test Suites</entry-title>
 +
 +
'''Note: This page reflects 2009 era test suite efforts for a set of stable microformats as of that time. See the current [[test-suite]] page for modern [[microformats2]] test suite efforts. [[User:Tantek|Tantek]] 17:18, 2 December 2012 (UTC)'''
 +
 +
----
So, you want to parse microformats in your app? Awesome. There are [[parsers]] in many languages.  
So, you want to parse microformats in your app? Awesome. There are [[parsers]] in many languages.  
Line 5: Line 9:
A critical effort to assist in interoperability and completeness of microformat parsing is the Test Suite. This page documents the effort to produce test cases for each microformat and parsing pattern, so that you can verify the operations of your parser.
A critical effort to assist in interoperability and completeness of microformat parsing is the Test Suite. This page documents the effort to produce test cases for each microformat and parsing pattern, so that you can verify the operations of your parser.
-
'''NB''': ''This page is new. There is a limited test suite available already for [[hCard]], [[hCalendar]], [[hReview]] and [[hAtom]]. It is somewhat outdated and unmaintained, but should give you a starting point. This effort hopes to produce something far more robust and extensive, as well as setting a precedent and framework for future microformats and test suites.'''
+
==Get the Tests==
-
This page will be expanded.
+
specific microformats:
 +
; [[hCard]]
 +
: http://ufxtract.com/testsuite/hcard/
 +
: ...
 +
; [[hCalendar]]
 +
: [[value-class-date-time-tests#hCalendar|value class pattern date and time hCalendar tests]]
 +
: http://ufxtract.com/testsuite/hcalendar/
 +
: ...
 +
; [[hReview]]
 +
: ...
 +
; [[hAtom]]
 +
: ...
 +
; [[adr]]
 +
: ...
 +
; [[geo]]
 +
: http://ufxtract.com/testsuite/geo/default.htm
 +
: ...
 +
; [[hResume]]
 +
: http://ufxtract.com/testsuite/hresume/default.htm
 +
: ...
-
==Get the Tests==
 
-
 
-
; hCard
 
-
: ???
 
-
; hCalendar
 
-
: ???
 
-
; hAtom
 
-
: ???
 
-
; hReview
 
-
: ???
 
-
; Geo
 
-
: ???
 
 +
patterns across microformats:
 +
; [[value-class-pattern]]
 +
: [[value-class-pattern-tests]]
 +
; [[include-pattern]]
 +
: ...
 +
==Goals of Test Suite Project==
==Goals of Test Suite Project==
-
 
We need to support specifications with better tests. There's no better way for parser writers to verify the correctness and completeness of their code without them. Microformats are getting adopted by big players, with large, stable implementations and are having bigger and bigger impact. It's critical that implementers don't reinvent the testing wheel for each new project.
We need to support specifications with better tests. There's no better way for parser writers to verify the correctness and completeness of their code without them. Microformats are getting adopted by big players, with large, stable implementations and are having bigger and bigger impact. It's critical that implementers don't reinvent the testing wheel for each new project.
We need to provide a suite to:
We need to provide a suite to:
-
 
* Verify the correctness of microformats parsing
* Verify the correctness of microformats parsing
* Indicate the completeness of a parser implementation
* Indicate the completeness of a parser implementation
Line 35: Line 50:
==Test Structure==
==Test Structure==
-
 
Each test takes the form of:
Each test takes the form of:
* Valid HTML 4 or XHTML 1.0 compatible file, containing the HTML mark-up for the test itself, along with the assertions used to validate the test.
* Valid HTML 4 or XHTML 1.0 compatible file, containing the HTML mark-up for the test itself, along with the assertions used to validate the test.
-
* Assertions are described using a <code>test-fixture</code> mark-up pattern, invented by Glen Jones for his [http://www.ufxtract.com/testsuite/µfextract tests]. ''This pattern needs to be documented here.''
+
* Assertions are described using a <code>test-fixture</code> mark-up pattern, invented by Glen Jones for his [http://www.ufxtract.com/testsuite/ µfextract tests]. ''This pattern needs to be documented here.''
This generic format has the following advantages:
This generic format has the following advantages:
Line 63: Line 77:
==Establishment Tasks==
==Establishment Tasks==
-
 
* Get the existing test cases from <code>hg.microformats.org</code> and into a Github repository.  
* Get the existing test cases from <code>hg.microformats.org</code> and into a Github repository.  
** The collaboration functionality of Github is well suited to the development of new tests.
** The collaboration functionality of Github is well suited to the development of new tests.
* Get the existing <code>test-fixture</code> tests integrated
* Get the existing <code>test-fixture</code> tests integrated
-
** Needs Public Domain release from Glen Jones.
+
** Needs Public Domain release from Glenn Jones. Done [[test-fixture]]
* Make people aware of it!
* Make people aware of it!
* Compile documentation for <code>test-fixture</code>
* Compile documentation for <code>test-fixture</code>
Line 78: Line 91:
Later, thought should be given to how assertions can be used to test implied meanings in microformats. For example, we cannot test ‘hCard is an organisation’ using a simple assert, since that is not a field of hCard (but would be a data field in an implementation). Initially, these implied meanings should just be documented in the tests, and applicable implementations can take note.
Later, thought should be given to how assertions can be used to test implied meanings in microformats. For example, we cannot test ‘hCard is an organisation’ using a simple assert, since that is not a field of hCard (but would be a data field in an implementation). Initially, these implied meanings should just be documented in the tests, and applicable implementations can take note.
-
==Related==
+
== past tests ==
 +
There are also some older test suites available for [[hCard]], [[hCalendar]], [[hReview]] and [[hAtom]]. They are somewhat outdated and unmaintained, but should give you a starting point. The effort described on this page hopes to produce something far more robust and extensive, as well as setting a precedent and framework for future microformats and test suites.
 +
==Related==
 +
* [[test-fixture]]
* [[parsers|Parsers]]
* [[parsers|Parsers]]
* [[debugging-tools|Debugging Tools]]
* [[debugging-tools|Debugging Tools]]
* [http://www.ufxtract.com/testsuite/ ufXtract test suite]
* [http://www.ufxtract.com/testsuite/ ufXtract test suite]

Current revision


Note: This page reflects 2009 era test suite efforts for a set of stable microformats as of that time. See the current test-suite page for modern microformats2 test suite efforts. Tantek 17:18, 2 December 2012 (UTC)


So, you want to parse microformats in your app? Awesome. There are parsers in many languages.

A critical effort to assist in interoperability and completeness of microformat parsing is the Test Suite. This page documents the effort to produce test cases for each microformat and parsing pattern, so that you can verify the operations of your parser.

Contents

Get the Tests

specific microformats:

hCard
http://ufxtract.com/testsuite/hcard/
...
hCalendar
value class pattern date and time hCalendar tests
http://ufxtract.com/testsuite/hcalendar/
...
hReview
...
hAtom
...
adr
...
geo
http://ufxtract.com/testsuite/geo/default.htm
...
hResume
http://ufxtract.com/testsuite/hresume/default.htm
...


patterns across microformats:

value-class-pattern
value-class-pattern-tests
include-pattern
...

Goals of Test Suite Project

We need to support specifications with better tests. There's no better way for parser writers to verify the correctness and completeness of their code without them. Microformats are getting adopted by big players, with large, stable implementations and are having bigger and bigger impact. It's critical that implementers don't reinvent the testing wheel for each new project.

We need to provide a suite to:

Test Structure

Each test takes the form of:

This generic format has the following advantages:

There is to be one test suite per format. In some cases, such as geo and adr with hCard, the address and geo portions will be included in the geo and adr test suites and hCard parsers will be expected to run cases from all three suites.

Tests using global patterns, such as value-class and abbr-design-pattern should be included in tests for all vocabularies, where appropriate.

Each vocabulary suite is organized as follows

Establishment Tasks

Later, thought should be given to how assertions can be used to test implied meanings in microformats. For example, we cannot test ‘hCard is an organisation’ using a simple assert, since that is not a field of hCard (but would be a data field in an implementation). Initially, these implied meanings should just be documented in the tests, and applicable implementations can take note.

past tests

There are also some older test suites available for hCard, hCalendar, hReview and hAtom. They are somewhat outdated and unmaintained, but should give you a starting point. The effort described on this page hopes to produce something far more robust and extensive, as well as setting a precedent and framework for future microformats and test suites.

Related

Test Suites was last modified: Sunday, December 2nd, 2012

Views