(bug #623642) Add --no-xfail and -F to subunit-filter.
[third_party/subunit] / NEWS
1 ---------------------
2 subunit release notes
3 ---------------------
4
5 NEXT (In development)
6 ---------------------
7
8 BUG FIXES
9 ~~~~~~~~~
10
11 * Add 'subunit --no-xfail', which will omit expected failures from the subunit
12   stream. (John Arbash Meinel, #623642)
13
14 * Add 'subunit -F/--only-genuine-failures' which sets all of '--no-skips',
15   '--no-xfail', '--no-passthrough, '--no-success', and gives you just the
16   failure stream. (John Arbash Meinel)
17
18 0.0.6
19 -----
20
21 This release of subunit fixes a number of unicode related bugs. This depends on
22 testtools 0.9.4 and will not function without it. Thanks to Tres Seaver there
23 is also an optional native setup.py file for use with easy_install and the
24 like.
25
26 BUG FIXES
27 ~~~~~~~~~
28
29 * Be consistent about delivering unicode content to testtools StringException
30   class which has become (appropriately) conservative. (Robert Collins)
31
32 * Fix incorrect reference to subunit_test_failf in c/README.
33   (Brad Hards, #524341)
34
35 * Fix incorrect ordering of tags method parameters in TestResultDecorator. This
36   is purely cosmetic as the parameters are passed down with no interpretation.
37   (Robert Collins, #537611)
38
39 * Old style tracebacks with no encoding info are now treated as UTF8 rather
40   than some-random-codec-like-ascii. (Robert Collins)
41
42 * On windows, ProtocolTestCase and TestProtocolClient will set their streams to
43   binary mode by calling into msvcrt; this avoids having their input or output
44   mangled by the default line ending translation on that platform.
45   (Robert Collins, Martin [gz], #579296)
46
47 IMPROVEMENTS
48 ~~~~~~~~~~~~
49
50 * Subunit now has a setup.py for python deployments that are not using
51   distribution packages. (Tres Seaver, #538181)
52
53 * Subunit now supports test discovery by building on the testtools support for
54   it. You can take advantage of it with "python -m subunit.run discover [path]"
55   and see "python -m subunit.run discover --help" for more options.
56
57 * Subunit now uses the improved unicode support in testtools when outputting
58   non-details based test information; this should consistently UTF8 encode such
59   strings.
60
61 0.0.5
62 -----
63
64 BUG FIXES
65 ~~~~~~~~~
66
67 * make check was failing if subunit wasn't installed due to a missing include
68   path for the test program test_child.
69
70 * make distcheck was failing due to a missing $(top_srcdir) rune.
71
72 IMPROVEMENTS
73 ~~~~~~~~~~~~
74
75 * New filter `subunit-notify` that will show a notification window with test 
76   statistics when the test run finishes.
77
78 * subunit.run will now pipe its output to the command in the 
79   SUBUNIT_FORMATTER environment variable, if set.
80
81 0.0.4
82 -----
83
84 BUG FIXES
85 ~~~~~~~~~
86
87 * subunit2junitxml -f required a value, this is now fixed and -f acts as a
88   boolean switch with no parameter.
89
90 * Building with autoconf 2.65 is now supported.
91
92
93 0.0.3
94 -----
95
96   CHANGES:
97   
98     * License change, by unanimous agreement of contributors to BSD/Apache
99       License Version 2.0. This makes Subunit compatible with more testing
100       frameworks.
101
102   IMPROVEMENTS:
103
104     * CPPUnit is now directly supported: subunit builds a cppunit listener
105       ``libcppunit-subunit``. 
106
107     * In the python API ``addExpectedFailure`` and ``addUnexpectedSuccess``
108       from python 2.7/3.1 are now supported. ``addExpectedFailure`` is
109       serialised as ``xfail``, and ``addUnexpectedSuccess`` as ``success``.
110       The ``ProtocolTestCase`` parser now calls outcomes using an extended
111       API that permits attaching arbitrary MIME resources such as text files
112       log entries and so on. This extended API is being developed with the
113       Python testing community, and is in flux. ``TestResult`` objects that
114       do not support the API will be detected and transparently downgraded
115       back to the regular Python unittest API.
116
117     * INSTALLDIRS can be set to control the perl MakeMaker 'INSTALLDIRS'
118       viarable when installing.
119
120     * Multipart test outcomes are tentatively supported; the exact protocol
121       for them, both serialiser and object is not yet finalised. Testers and
122       early adopters are sought. As part of this and also in an attempt to
123       provider a more precise focus on the wire protocol and toolchain, 
124       Subunit now depends on testtools (http://launchpad.net/testtools)
125       release 0.9.0 or newer.
126
127     * subunit2junitxml supports a new option, --forward which causes it
128       to forward the raw subunit stream in a similar manner to tee. This
129       is used with the -o option to both write a xml report and get some
130       other subunit filter to process the stream.
131
132     * The C library now has ``subunit_test_skip``.
133
134   BUG FIXES:
135
136     * Install progress_model.py correctly.
137
138     * Non-gcc builds will no longer try to use gcc specific flags.
139       (Thanks trondn-norbye)
140
141   API CHANGES:
142
143   INTERNALS:
144
145 0.0.2
146 -----
147
148   CHANGES:
149
150   IMPROVEMENTS:
151
152     * A number of filters now support ``--no-passthrough`` to cause all
153       non-subunit content to be discarded. This is useful when precise control
154       over what is output is required - such as with subunit2junitxml.
155
156     * A small perl parser is now included, and a new ``subunit-diff`` tool
157       using that is included. (Jelmer Vernooij)
158
159     * Subunit streams can now include optional, incremental lookahead
160       information about progress. This allows reporters to make estimates
161       about completion, when such information is available. See the README
162       under ``progress`` for more details.
163
164     * ``subunit-filter`` now supports regex filtering via ``--with`` and
165       ``without`` options. (Martin Pool)
166
167     * ``subunit2gtk`` has been added, a filter that shows a GTK summary of a
168       test stream.
169
170     * ``subunit2pyunit`` has a --progress flag which will cause the bzrlib
171       test reporter to be used, which has a textual progress bar. This requires
172       a recent bzrlib as a minor bugfix was required in bzrlib to support this.
173
174     * ``subunit2junitxml`` has been added. This filter converts a subunit
175       stream to a single JUnit style XML stream using the pyjunitxml
176       python library.
177
178     * The shell functions support skipping via ``subunit_skip_test`` now.
179
180   BUG FIXES:
181
182     * ``xfail`` outcomes are now passed to python TestResult's via
183       addExpectedFailure if it is present on the TestResult. Python 2.6 and
184       earlier which do not have this function will have ``xfail`` outcomes
185       passed through as success outcomes as earlier versions of subunit did.
186
187   API CHANGES:
188
189     * tags are no longer passed around in python via the ``TestCase.tags``
190       attribute. Instead ``TestResult.tags(new_tags, gone_tags)`` is called,
191       and like in the protocol, if called while a test is active only applies
192       to that test. (Robert Collins)
193
194     * ``TestResultFilter`` takes a new optional constructor parameter 
195       ``filter_predicate``.  (Martin Pool)
196
197     * When a progress: directive is encountered in a subunit stream, the
198       python bindings now call the ``progress(offset, whence)`` method on
199       ``TestResult``.
200
201     * When a time: directive is encountered in a subunit stream, the python
202       bindings now call the ``time(seconds)`` method on ``TestResult``.
203
204   INTERNALS:
205
206     * (python) Added ``subunit.test_results.AutoTimingTestResultDecorator``. Most
207       users of subunit will want to wrap their ``TestProtocolClient`` objects
208       in this decorator to get test timing data for performance analysis.
209
210     * (python) ExecTestCase supports passing arguments to test scripts.
211
212     * (python) New helper ``subunit.test_results.HookedTestResultDecorator``
213       which can be used to call some code on every event, without having to
214       implement all the event methods.
215
216     * (python) ``TestProtocolClient.time(a_datetime)`` has been added which
217       causes a timestamp to be output to the stream.