-
Notifications
You must be signed in to change notification settings - Fork 2
/
ChangeLog
1418 lines (921 loc) · 52.7 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2011-06-27 Matthew Astley <[email protected]>
* lib/Test/Unit/UnitHarness.pm, t/try_examples.t: avoid $^X
* lib/Test/Unit/Debug.pm, all its callers: Clarification of
use (intended to be internal), pointers elsewhere, fixes; accept
debug($coderef) to postpone slow text generators.
Fixes https://rt.cpan.org/Ticket/Display.html?id=6758 (thanks
aa29).
Deprecated T:U:Debug::{,no_}debug_pkgs importable subroutines.
2011-06-15 Matthew Astley <[email protected]>
* Makefile.PL: Improved META.yml; warnings.
2011-06-09 Matthew Astley <[email protected]>
* lib/Test/Unit/UnitHarness.pm, t/try_examples.t: avoid $^X
2011-06-08 Matthew Astley <[email protected]>
Small bugfixes & Global IPv6 day. dev0.25_1325
* t/try_examples.t: accept small negative CPU time.
* t/try_examples.t, TestRunner.pl: test+fix exit code.
* t/tlib/AssertTest.pm: don't assume qr/foo/ stringifies
as (?-xism:foo) . In Perl 5.14 it doesn't.
2011-06-07 Matthew Astley <[email protected]>
A few old changes, for proof of new 'make tardist'. dev0.25_0922
* Makefile.PL, inc/*, dist-tools/*: use version info from Git.
Fix the lack of version numbers in modules.
2011-05-21 Matthew Astley <[email protected]>
Internal: migration from CVS to Git. Website overhaul.
2007-11-05 Matthew Astley <[email protected]>
[entry added later]
* t/error-compat.t, t/tlib/ManyThrowsTestCase.pm: test problems
with assumptions made about exceptions; not yet in the dist.
* lib/Test/Unit/Assertion/Exception.pm: tweak "needs an exception
class" message
2007-10-30 Matthew Astley <[email protected]>
* lib/Test/Unit.pm: fix release version interpolation from v1.29
2007-10-29 Matthew Astley <[email protected]>
* lib/Test/Unit/Assert.pm (is_numeric),
t/tlib/AssertTest.pm (test_numericness): fix is_numeric the
conservative way: if it's not clearly text or number, barf
(return of SF bug #1014540)
* lib/Test/Unit/TkTestRunner.pm (show_error_trace): bugfix for
newer Tk, fixes SF bug #1817669
* t/tlib/AssertTest.pm: stop expecting assert_{isa,can} to work
with class names instead of objects; include original testcase
from SF bug #1012115 for peace of mind
2007-10-22 Matthew Astley <[email protected]>
[entry added later]
* t/try_examples.t: trivial fix for RT bug #14469
https://rt.cpan.org/Public/Bug/Display.html?id=14469
* lib/Test/Unit/Assert.pm: add assert_isa and assert_can from
Marek Rouchal. https://rt.cpan.org/Public/Bug/Display.html?id=4613
Updated contributors list.
2005-10-15 Matthew Astley <[email protected]>
* doc/release-checklist, doc/TODO, ChangeLog: updates for release
* lib/Test/Unit.pm: version 0.25
* MANIFEST: add licence and class-diagram files, remove old
exmample; keep in "make manifest" generated order
* t/tlib/AssertTest.pm (test_fail_assert_not_null): extra check,
for SF bug #610499
* lib/Test/Unit/Assert.pm (assert_deep_equals): fix comparisons of
cyclic structures (thanks flacoste, SF patch #678422), comparisons
of undefs (thanks flacoste, Debian BTS #249678), comparison of
SCALAR refs
* t/tlib/AssertTest.pm (test_assert_deep_equals): add modified
test from SF bug #1012115; modified test from flacoste's SF patch
#678422; more tests on SCALAR refs, and improve the regexp
2005-08-19 Matthew Astley <[email protected]>
* doc/TODO: notes on HarnessUnit, UnitHarness; more on stuff I'd
like to do later
* examples/README: minor update
2005-08-03 Matthew Astley <[email protected]>
* doc/class-diagram.{dia,txt,png}: first stab at a UML class
diagram, see how it goes
2005-08-01 Matthew Astley <[email protected]>
* lib/Test/Unit.pm, lib/Test/Unit/TkTestRunner.pm, lib/Test/Unit/TestRunner.pm:
put links to COPYING.* in Test::Unit; move copyright notices from
testrunner modules to Test::Unit
* lib/Test/Unit/<many>, t/tlib/AllTests.pm: set AUTHOR POD
sections to the same boilerplate, in files that don't appear to be
single-author -- as described in the top level AUTHORS file
* AUTHORS: update authors list with SF ids and what I found while
boilerplating the PODs; add explicit copy of the Perl licence,
taken from Debian perl-base package v5.8.4-2
* COPYING.Artistic, COPYING.GPL-2: licences copied from Debian
base-files package v3.0.12
2005-07-31 Matthew Astley <[email protected]>
* lib/Test/Unit/Assert.pm (is_numeric): change the test to match
only lone numbers. fix SF bug#1014540
*** NB. this causes assert_equals to switch from assert_num_equals
to assert_str_equals in some cases
* t/tlib/AssertTest.pm (test_numericness, test_assert_equals):
tests for new is_numeric
* lib/Test/Unit/TkTestRunner.pm: make "Show..." dialog text expand
with window and include annotations. fixes SF bug#1018619
* t/try_examples.t: clear out useless 'use lib's; remove dup $^O
check; fix RT bug#3963 (thanks ILYAM); improve skipping of
untested items
* examples/tester.png: update screenshot of Tk test runner; mark
as binary
* examples/tester.pl: remove old Tk code - Test::SuiteWrapper went
away 2000-02-21
2005-07-30 Matthew Astley <[email protected]>
* t/try_examples.t:
Fix SF bug#908422 (track changing testing output format);
Thanks: dholland, eksiegerman
[aka. SF bug#1245490, RT bug#2244]
* .cvsignore: ignore build stuff
-- other changes Adam made since REL_0_24, but aren't mentioned
already. I list them partly so I know where my towel is:
* AUTHORS: Adam became maintainer
* doc/TODO: updated
* lib/Test/Unit/Decorator.pm: some minor change I've not investigated
* lib/Test/Unit/Procedural.pm:
fix bug spotted by Matthias Ferber (and Ken) in run() (which is
usually overridden) [SF bug#760491, RT bug#3058]
* lib/Test/Unit/Runner.pm: improve filtering, POD
* lib/Test/Unit/TestCase.pm: POD for filtering
* t/tlib/RunnerTest.pm: new test for T:U:TestRunner, just tests
filtering; uses the new t/tlib/FilteredSuite.pm
2002-06-20 Adam Spiers <[email protected]>
* lib/Test/Unit/TestCase.pm: document new filtering via coderefs
* MANIFEST, lib/Test/Unit/Test.pm, lib/Test/Unit/TestSuite.pm, t/tlib/AllTests.pm, t/tlib/FilteredSuite.pm:
- remove ALL filtering hack, and instead allow filtering via coderefs:
sub filter {{
foo_tests => sub {
my $method = shift;
return $method =~ /foo/;
},
everything => sub { 1 },
# method lists still work
another_token => [ qw/test_method1 test_method2/ ],
}}
- add tests for filtering mechanism
2002-06-14 Adam Spiers <[email protected]>
* lib/Test/Unit.pm: version 0.24
* ChangeLog: new stuff for 0.24
* MANIFEST:
'make manifest' revealed more missing files, though none of them crucial
* AUTHORS: change Adam's email address
* lib/Test/Unit/TestRunner.pm:
Don't die if the run was unsuccessful; we might want to reuse the runner
for another run.
* MANIFEST: argh! 0.23's MANIFEST was missing several crucial files.
2002-06-13 Adam Spiers <[email protected]>
* lib/Test/Unit/Runner/Terminal.pm: forgot to update the pod
* .cvsignore: ignore tarballs
* doc/release-checklist: typo
* README, doc/release-checklist:
cut down on the poor maintainer's workload
* Changes: deprecate this file
* ChangeLog: new stuff for 0.23
* lib/Test/Unit.pm: version 0.23
* doc/TODO: mention that Attribute::Handlers probably won't work
* t/tlib/TestTest.pm, lib/Test/Unit/Error.pm, lib/Test/Unit/Exception.pm, lib/Test/Unit/Result.pm, lib/Test/Unit/TestCase.pm:
Rework the exception handling mechanisms of run_protected/run_bare so
that run-time exceptions in set_up or tear_down no longer halt the
framework, and neither do user-defined exceptions thrown in the test
methods themselves (where the framework only used to handle
straight-forward exceptions where $@ was a scalar, I think). Some
assumptions about Error.pm internals have had to be made,
unfortunately.
* lib/Test/Unit/Procedural.pm: remove spurious 'use' line
2002-06-12 Adam Spiers <[email protected]>
* lib/Test/Unit/Debug.pm: allow debugging to a file with debug_to_file
2002-06-10 Adam Spiers <[email protected]>
* lib/Test/Unit/Runner/Terminal.pm:
use \e[4A\r instead of \e[4F, which not all terminals support
* lib/Test/Unit/Runner/Terminal.pm:
Ahem. Forgot to change package name.
* lib/Test/Unit/TkTestRunner.pm:
check that something is selected when the user clicks 'Show...'
* lib/Test/Unit/TkTestRunner.pm: disable broken rerun button
* MANIFEST, lib/Test/Unit/Listener.pm, lib/Test/Unit/Runner.pm, lib/Test/Unit/Runner/Terminal.pm, lib/Test/Unit/TestRunner.pm, lib/Test/Unit/TestSuite.pm:
- new start_suite/end_suite events sent to listeners, to track where
current test is in the suite hierarchy ($runner->suites_running)
- new T::U::Runner::Terminal runner which uses terminal escape
sequences to show which suites/tests are currently being run
- result object now stored in the runner
* lib/Test/Unit/TkTestRunner.pm: clean up of code style
* lib/Test/Unit/Listener.pm:
pseudo-document the parameters for the listener interface
2002-05-23 Adam Spiers <[email protected]>
* doc/TODO, lib/Test/Unit/TestCase.pm:
(poorly) document @TESTS and the filtering mechanism
* lib/Test/Unit.pm: version 0.22
* ChangeLog:
get this uptodate by merging auto-generated entries with existing ones
* lib/Test/Unit/TestSuite.pm:
allow 'ALL' as a magic test name which matches all methods in this class, e.g.
package MyTest37;
use base qw(Test::Unit::TestCase);
...
sub filter {{
skip_thirty_seven => [ 'ALL' ],
slow => [ qw(test_I_am_slow test_I_am_slow_too) ],
}}
* lib/Test/Unit/Assert.pm, t/tlib/AssertTest.pm:
assert_(str|num)(_not)?_equals now fail with undef parameters,
to avoid tests passing by accident. The user should either use
assert_null/assert_not_null, or check for undef before the assertion.
2002-05-23 Adam Spiers <[email protected]>
* lib/Test/Unit/TestSuite.pm:
allow 'ALL' as a magic test name which matches all methods in this class, e.g.
package MyTest37;
use base qw(Test::Unit::TestCase);
...
sub filter {{
skip_thirty_seven => [ 'ALL' ],
slow => [ qw(test_I_am_slow test_I_am_slow_too) ],
}}
* lib/Test/Unit/Assert.pm, t/tlib/AssertTest.pm:
assert_(str|num)(_not)?_equals now fail with undef parameters,
to avoid tests passing by accident. The user should either use
assert_null/assert_not_null, or check for undef before the assertion.
2002-05-14 Adam Spiers <[email protected]>
* lib/Test/Unit/TestCase.pm: bit more debugging
2002-03-26 Adam Spiers <[email protected]>
* lib/Test/Unit.pm: version 0.21
* lib/Test/Unit/Assert.pm, t/tlib/AssertTest.pm:
avoid UNIVERSAL::isa, which is buggy with 5.6.0 (see perldelta)
2002-03-18 Adam Spiers <[email protected]>
* t/tlib/AssertTest.pm:
update boolean assertion tests for new failure message
* doc/TODO: do_run should be public
* lib/Test/Unit/Assertion/Boolean.pm:
slightly nicer default assertion failure message
2002-03-04 Adam Spiers <[email protected]>
* lib/Test/Unit/Test.pm, lib/Test/Unit/TestCase.pm:
avoid namespace clashes in TestCase objects (thanks to jonasbn for
pointing this problem out)
* README: update the prerequisites
2002-02-20 Adam Spiers <[email protected]>
* lib/Test/Unit/Assert.pm:
reintroduce caveat about $self->assert($foo =~ /$bar/)
2002-02-12 Adam Spiers <[email protected]>
* lib/Test/Unit/Assert.pm, t/tlib/AssertTest.pm:
make $self->assert([1]); work
2002-02-05 Adam Spiers <[email protected]>
* lib/Test/Unit/Assert.pm, t/tlib/AssertTest.pm:
assert_deep_equals takes references 'A' and 'B', not 'got' and 'expected'
2002-02-04 Adam Spiers <[email protected]>
* t/tlib/AllTests.pm, t/tlib/AssertTest.pm, t/tlib/ExceptionChecker.pm, t/tlib/TestObject.pm, t/tlib/WillDie.pm:
- factor out exception checking into ExceptionChecker
- move TestObject class into separate file
- tests for test-case methods which die ( they pass but I am still
getting funny results from my real-world test-cases )-:
* doc/TODO: @TESTS needs testing
2002-01-29 Adam Spiers <[email protected]>
* lib/Test/Unit/HarnessUnit.pm, lib/Test/Unit/Runner.pm, lib/Test/Unit/TkTestRunner.pm:
factor create_test_result
* lib/Test/Unit/Assert.pm, t/tlib/AssertTest.pm:
- new assert_deep_equals for comparing deep structures, mostly
ripped out of Test::More
- some tests weren't getting run because of identical hash keys
when I should have been using arrays (doh!)
2002-01-23 Adam Spiers <[email protected]>
* doc/TODO: need to document @TESTS
2002-01-09 Adam Spiers <[email protected]>
* lib/Test/Unit/TestRunner.pm:
missed a rename from output() to annotations()
2002-01-08 Adam Spiers <[email protected]>
* MANIFEST, lib/Test/Unit/Assert.pm, lib/Test/Unit/Assertion/CodeRef.pm, lib/Test/Unit/Assertion/Exception.pm, lib/Test/Unit/Assertion/Regexp.pm, t/assert.t, t/tlib/AssertTest.pm:
- Fix breakage where coderef assertions were not failing. Coderef
assertions are now expected to throw Test::Unit::Failures
($self->fail() is a convenient way of doing this; see updated docs).
- New tests for assert().
- New multi_assert() for using multiple argument sets with one assertion
(plus tests).
- New assert_raises() for asserting that a coderef raises a particular
class of exception (plus tests).
* t/tlib/TestTest.pm: the famous scalar/regexp problem
2001-12-20 Adam Spiers <[email protected]>
* lib/Test/Unit/Assertion.pm: whitespace
2001-12-19 Adam Spiers <[email protected]>
* lib/Test/Unit/TestCase.pm:
missed a print -> annotate change in the pod
* t/tlib/AssertTest.pm: 3 more tests for ok()
2001-12-18 Adam Spiers <[email protected]>
* lib/Test/Unit/Loader.pm:
fix problem with symbol tables containing symbol tables
* lib/Test/Unit/TestCase.pm, lib/Test/Unit/TestRunner.pm:
rename print() to annotate()
2001-12-11 Adam Spiers <[email protected]>
* lib/Test/Unit/Assert.pm, t/tlib/AssertTest.pm:
- Add new assert_matches() and assert_does_not_match() assertions,
as requested by Matthias Ferber, and new tests for them of course.
- Start testing for the correct messages in T::U::Failure objects
(see check_exception()). In particular this tests that the optional
MESSAGE args are processed correctly when reporting failures.
- Improved behaviour of assert_equals() and assert_not_equals() with
undefined parameters.
- Added more stringent tests for assert_equals() and assert_not_equals().
Some of these are possibly debatable. I think the assert_equals()
matrix should be retired in favour of the check_failures() style tests
used to check assert_not_equals(), since the latter also check the
failure message and originating file/line (added a #FIXME for this).
- Fixed reversed got/expected message with $self->ok(sub { 2 + 2 }, 4);
Spotted this as a bonus of the new check_exception(), yay.
* lib/Test/Unit/TestRunner.pm, t/try_examples.t:
autoflush TestRunner's output stream
2001-12-07 Adam Spiers <[email protected]>
* lib/Test/Unit/TestRunner.pm: Don't need that \n *either*. Doh!
* lib/Test/Unit/TestRunner.pm: don't need that \n either
2001-12-06 Adam Spiers <[email protected]>
* lib/Test/Unit/TestCase.pm: document print()
2001-12-05 Adam Spiers <[email protected]>
* doc/TODO, lib/Test/Unit/Exception.pm, lib/Test/Unit/Result.pm, lib/Test/Unit/TestCase.pm, lib/Test/Unit/TestRunner.pm:
can now call $self->print("debugging stuff") within test case methods
and if the test fails or "errors" you get to see all the debugging
accumulated from the above calls
2001-12-04 Adam Spiers <[email protected]>
* doc/TODO: ideas from Test::More
* doc/TODO: $Error::Depth bug fixed (I think)
* lib/Test/Unit/Assert.pm:
We seem to have obtained an extra 2 stack frames somewhere along the line.
This makes the new, more stringent exception checking tests in AssertTest.pm
pass.
* t/tlib/AssertTest.pm:
- Added hairiness to failure/error testing, so it now doesn't just
check that the exception was raised, but also checks that its file()
and line() methods point correctly to the source of the failed assertion.
- Refactored duplicated code from check_failures() and check_errors() into
check_exceptions()
* lib/Test/Unit/TestCase.pm: tiny cosmetic tweak
* TestLister.pl, lib/Test/Unit/TestCase.pm, lib/Test/Unit/TestSuite.pm:
simple but pretty script for listing suite structure rather than running it
* examples/fail_example.pm, lib/Test/Unit/Debug.pm:
missed a few DEBUGs in fail_example.pm
* Makefile.PL, doc/TODO:
require base.pm version 1, so that a warning is generated for buggy
base.pms
* lib/Test/Unit.pm: link to AUTHORS file
* TestRunner.pl: example usage of debugging
* lib/Test/Unit/Loader.pm: avoid warning
* AUTHORS: Kevin was listed twice
2001-12-03 Piers Cawley <[email protected]>
* AUTHORS: Added the list of Authors who've written code for PerlUnit.
Almost certainly incomplete. Add your details please.
2001-12-03 Adam Spiers <[email protected]>
* lib/Test/Unit/HarnessUnit.pm: don't need that \n
* doc/TODO: fixed
* lib/Test/Unit/HarnessUnit.pm, lib/Test/Unit/Loader.pm, lib/Test/Unit/Result.pm, lib/Test/Unit/Setup.pm, lib/Test/Unit/Test.pm, lib/Test/Unit/TestCase.pm, lib/Test/Unit/TestRunner.pm, lib/Test/Unit/TestSuite.pm, lib/Test/Unit/UnitHarness.pm, t/all_tests.t, t/tlib/ListenerTest.pm, MANIFEST, lib/Test/Unit/Assert.pm, lib/Test/Unit/Debug.pm, lib/Test/Unit/Decorator.pm, lib/Test/Unit/Exception.pm:
All debugging now happens through a simple unified debugging class
Test::Unit::Debug. This allows the user to turn debugging on/off
dynamically, still on a per-package basis, but in a more convenient
way. Also eliminates the problem with `make test' failing when
DEBUG is "compiled in".
* doc/TODO: more jobs
* t/tlib/TestTest.pm: should have a name
* t/tlib/TestTest.pm:
give inner classes names to avoid warnings in debugging
2001-11-30 Adam Spiers <[email protected]>
* lib/Test/Unit/TestCase.pm:
this could come in handy when overriding list_tests()
2001-11-30 Piers Cawley <[email protected]>
* lib/Test/Unit.pm:
Added a feedback section to Test::Unit's pod, suggesting that users
join perlunit-users and generally give us some feedback.
2001-11-29 Adam Spiers <[email protected]>
* lib/Test/Unit/Loader.pm: forgot to put this die() in
* MANIFEST, Makefile.PL, lib/Test/Unit.pm, lib/Test/Unit/Loader.pm, lib/Test/Unit/Procedural.pm, lib/Test/Unit/Test.pm, lib/Test/Unit/TestRunner.pm, lib/Test/Unit/TestSuite.pm, lib/Test/Unit/Warning.pm, t/tlib/AllTests.pm, t/tlib/InheritedSuite/OverrideNew.pm, t/tlib/InheritedSuite/OverrideNewName.pm, t/tlib/InheritedSuite/Simple.pm, t/tlib/InheritedSuite/TestNames.pm, t/tlib/SuiteTest.pm:
some major improvements:
- fixed the existing suite-building API, extended it, documented it fully,
added/improved tests for it
- reintroduced Test/Unit.pm, this time as a placeholder for $VERSION
and some introductory pod containing pointers to the other modules
- massive refactoring of Test::Unit::Loader
- factored out Test::Unit::Suite::_warning into Test::Unit::Warning, so
it could be used elsewhere
[I think he meant Test::Unit::TestSuite::_warning -- mca,
trying to prevent confusion]
- fixed NoTestCaseClass test
* examples/fail_example.pm, t/try_examples.t:
add a couple of comments now I know what this Decorator/Setup business is about
* t/try_examples.t:
skip properly, don't just mark as TODO because they aren't TODO
* lib/Test/Unit/Decorator.pm: whitespace
* lib/Test/Unit/Setup.pm: don't want those prototypes
* lib/Test/Unit/UnitHarness.pm:
- @ISA = ('Exporter') line was overriding use base lines
- whitespace now matches conventions we decided on
* t/all_tests.t, t/assert.t, t/try_examples.t:
these should be executable
2001-11-28 Adam Spiers <[email protected]>
* examples/README: get this up to date (ish)
* lib/Test/Unit/Loader.pm:
- get_package_name_from_file() never worked before (missing assignment
to $filename).
- remove dependency on FileHandle; this saves us a bit of code bloat
if we're not using UnitHarness.
* t/try_examples.t:
I think this is right for fail_example.pm, maybe ...
* examples/fail_example.pm:
fail_example_testsuite_setup package needs to come second, otherwise
Test::Unit::Loader::get_package_name_from_file returns the wrong suite.
* t/tlib/ActiveTestTest.pm, t/tlib/Success.pm:
- refactoring: no point having more than one Success test case
- it should really have at least one successful test in it
* lib/Test/Unit/Loader.pm: fix the pod
* lib/Test/Unit/Loader.pm: - more suitable variable names
- don't need no strict 'refs'
- cosmetics
* lib/Test/Unit/TestRunner.pm:
TestRunner can run test cases *and* test suites
* lib/Test/Unit/HarnessUnit.pm: missing use
* doc/TODO: copyright stuff
2001-11-27 Adam Spiers <[email protected]>
* doc/TODO, lib/Test/Unit/TestSuite.pm:
Allow test suites to be derived from Test::Unit::TestSuite!
This turned out to be a relatively small change, and paves
the way for vast improvements IMO. The old API should still
work perfectly.
* MANIFEST, README, doc/TODO, examples/patch100132, examples/patch100132-1, examples/patch100132-2, lib/Test/Unit.pm, lib/Test/Unit/Procedural.pm:
renamed Test::Unit to Test::Unit::Procedural
* lib/Test/Unit/Test.pm, lib/Test/Unit/TestRunner.pm:
get the versioning uptodate and CPAN-compliant
* TestRunner.pl, TkTestRunner.pl:
there's no reason why these shouldn't be executable
2001-11-16 Adam Spiers <[email protected]>
* doc/TODO: done that
* lib/Test/Unit/Loader.pm, t/tlib/AllTests.pm, t/tlib/BadSuite/BadUse.pm, t/tlib/BadSuite/SyntaxError.pm, t/tlib/BadSuitesTest.pm:
- might as well have some debugging in Loader if we have DEBUG
- fix misleading error when a suite has a bad dependency
- add tests for correct runner error message in above bad dependency
case, and for a straightforward syntax error
2001-11-15 Piers Cawley <[email protected]>
* MANIFEST: Added doc/TODO
2001-11-15 Adam Spiers <[email protected]>
* lib/Test/Unit/Test.pm: forgot to test DEBUG
* doc/TODO: done some work on runner state and filtering
* lib/Test/Unit/TestSuite.pm: only add tests via add_test()
* MANIFEST, lib/Test/Unit/HarnessUnit.pm, lib/Test/Unit/Runner.pm, lib/Test/Unit/Test.pm, lib/Test/Unit/TestCase.pm, lib/Test/Unit/TestRunner.pm, lib/Test/Unit/TestSuite.pm, lib/Test/Unit/TkTestRunner.pm, lib/Test/Unit/UnitHarness.pm:
- add new Runner base class which is an appropriate place for runner state
common between all runners
- very basic example of its usage: filter tokens - add something like
this to your test case
sub filter {{
'slow' => [ 'test_a_slow_one', 'test_another_slow_one' ],
'really_slow' => [ 'test_wow_really_slow' ],
}}
then you can filter out slow tests via
my $runner = new Test::Unit::TestRunner();
$runner->filter(qw/slow really_slow/);
$runner->start($class);
* lib/Test/Unit/TestRunner.pm: - tidy up output a bit
- use T::U::Loader for loading main suite
* doc/TODO: done that
* t/all_tests.t, t/assert.t, t/tlib/ActiveTestTest.pm, t/tlib/AllTests.pm, t/tlib/AssertTest.pm, t/tlib/InheritedInheritedTestCase.pm, t/tlib/InheritedTestCase.pm, t/tlib/ListenerTest.pm, t/tlib/NoTestCaseClass.pm, t/tlib/NoTestCases.pm, t/tlib/OneTestCase.pm, t/tlib/OverrideTestCase.pm, t/tlib/Success.pm, t/tlib/SuiteTest.pm, t/tlib/TestAssertionCodeRef.pm, t/tlib/TestTest.pm, t/tlib/TornDown.pm, t/tlib/WasRun.pm, t/try_examples.t, MANIFEST, README, lib/Test/Unit/Assert.pm, lib/Test/Unit/TestCase.pm, lib/Test/Unit/TestRunner.pm, lib/Test/Unit/TestSuite.pm, lib/Test/Unit/TkTestRunner.pm, lib/Test/Unit/Tutorial.pm:
move lib/Test/Unit/tests/*.pm to t/tlib
* doc/TODO, doc/consensus.txt: moved some stuff to TODO
* doc/consensus.txt:
removing stuff about new assertion mechanism, this is now in HEAD
and documented (Test::Unit::Assert*)
* doc/TODO, doc/consensus.txt: new doc/TODO
2001-11-14 Adam Spiers <[email protected]>
* lib/Test/Unit/Assertion/Boolean.pm:
get optional messages working just like with assert_str_equals etc.
2001-11-13 Adam Spiers <[email protected]>
* lib/Test/Unit/Assert.pm: - add support to ok() for optional comments
- make ok() raise error not failure with bad args
- fix assert_num_equals ditching optional comment
* lib/Test/Unit/Assertion/Regexp.pm: making debugging more readable
* lib/Test/Unit/Assertion/Boolean.pm:
- fix typo which was hiding optional failure comment
- making debugging more readable
* lib/Test/Unit/Exception.pm: improve legibility of failures
* lib/Test/Unit/Assert.pm: - finish ok() wrapper, and add tests for it
- some refactoring into new check_failures() in T/U/tests/AssertTest.pm
2001-11-12 Adam Spiers <[email protected]>
* Makefile.PL:
need 5.005 for qr//, thanks to Quinn Weaver for pointing that out
2001-11-12 Piers Cawley <[email protected]>
* lib/Test/Unit/Assertion.pm, lib/Test/Unit/Assertion/Boolean.pm, lib/Test/Unit/Assertion/CodeRef.pm, lib/Test/Unit/Assertion/Regexp.pm, lib/Test/Unit/Decorator.pm, lib/Test/Unit/Error.pm, lib/Test/Unit/Exception.pm, lib/Test/Unit/ExceptionError.pm, lib/Test/Unit/ExceptionFailure.pm, lib/Test/Unit/Failure.pm, lib/Test/Unit/HarnessUnit.pm, lib/Test/Unit/InnerClass.pm, lib/Test/Unit/Listener.pm, lib/Test/Unit/Loader.pm, lib/Test/Unit/Result.pm, lib/Test/Unit/Setup.pm, lib/Test/Unit/Test.pm, lib/Test/Unit/TestCase.pm, lib/Test/Unit/TestDecorator.pm, lib/Test/Unit/TestFailure.pm, lib/Test/Unit/TestListener.pm, lib/Test/Unit/TestLoader.pm, lib/Test/Unit/TestResult.pm, lib/Test/Unit/TestRunner.pm, lib/Test/Unit/TestSetup.pm, lib/Test/Unit/TestSuite.pm, lib/Test/Unit/TkTestRunner.pm, lib/Test/Unit/UnitHarness.pm, t/all_tests.t, t/assert.t, t/try_examples.t, .cvsignore, ChangeLog, Changes, MANIFEST, MANIFEST.SKIP, Makefile.PL, examples/README, examples/fail_example.pm, examples/patch100132, examples/procedural-adding-suites-example.pl, examples/procedural-another-package-example.pl, examples/procedural-fail-example.pl, examples/procedural-ok-example.pl, lib/Test/Unit.pm, lib/Test/Unit/Assert.pm:
Merged changes from PDC_REFACTOR branch.
* Makefile.PL, lib/Test/Unit/TestCase.pm:
Tidied up some formatting in Test::Unit::TestCase and added a dependency
to Makefile.PL
2001-11-12 Adam Spiers <[email protected]>
* doc/consensus.txt: coding style
2001-11-07 Adam Spiers <[email protected]>
* lib/Test/Unit/Assert.pm: ok(): support more cases
* lib/Test/Unit/Assert.pm:
oops, ok() needs to reverse order of got/expected args
* ChangeLog:
Bring ChangeLog uptodate for this branch. Hmm, maybe we should just
let CVS and rcs2log do the hard work as far as change logs are
concerned.
* doc/consensus.txt: - only edit consensus.txt in HEAD
- consensus on use vs. require
* lib/Test/Unit/Exception.pm: cosmetics in failure output
* lib/Test/Unit/Assert.pm: - cosmetics in failure output
- add missing require (thanks to Hans Donner <[email protected]>)
- add a controversial but very convenient and harmless alias:
&ok -> &assert_equals
* .cvsignore: New file.
* .cvsignore: cvs-ignore Makefile
* doc/consensus.txt: deal with broken base.pm issue
2001-10-31 Piers Cawley <[email protected]>
* MANIFEST: Tidied up the MANIFEST so make tardist works.
* MANIFEST, t/try_examples.t:
Fixed t/try_examples.t to recognize a passing test.
2001-10-30 Piers Cawley <[email protected]>
* lib/Test/Unit/TestRunner.pm, lib/Test/Unit/UnitHarness.pm, Makefile.PL:
Tidied up output of TestRunner
Added prerequisites to Makefile.PL
Removed some dependencies on Test::Unit::InnerClass
2001-10-26 Adam Spiers <[email protected]>
* lib/Test/Unit/tests/AssertTest.pm: fix barewords error
2001-10-25 Adam Spiers <[email protected]>
* doc/consensus.txt: todo: check for broken Error.pms
2001-09-07 pdcawley <[email protected]>
* ChangeLog: Added some stuff in the ChangeLog
* lib/Test/Unit/Result.pm: More doc fixes.
* lib/Test/Unit/Result.pm, lib/Test/Unit/TestCase.pm:
Doctored Test::Unit::Result again, so that if $test->run_bare *does*
return false we actually add a failure instead of just leaving things
up in the air (causes a problem with test harnesses if we don't)
* lib/Test/Unit/Assert.pm, lib/Test/Unit/TestCase.pm, lib/Test/Unit/tests/AssertTest.pm, ChangeLog:
Tidied up the documentation in Test::Unit::Assert.
Made sure that Test::Unit::TestCase::run_bare returns true if it doesn't
throw an exception.
* lib/Test/Unit/TestCase.pm: An attempt at improving the documentation.
* lib/Test/Unit/Setup.pm: New file.
* Changes, MANIFEST, examples/README, examples/fail_example.pm, lib/Test/Unit/Setup.pm, lib/Test/Unit/TestSetup.pm:
Renamed Test::Unit::TestSetup to Test::Unit::Setup
* lib/Test/Unit/Listener.pm, lib/Test/Unit/tests/ListenerTest.pm:
New file.
* MANIFEST, lib/Test/Unit/HarnessUnit.pm, lib/Test/Unit/Listener.pm, lib/Test/Unit/TestListener.pm, lib/Test/Unit/TestRunner.pm, lib/Test/Unit/TkTestRunner.pm, lib/Test/Unit/UnitHarness.pm, lib/Test/Unit/tests/AllTests.pm, lib/Test/Unit/tests/ListenerTest.pm, lib/Test/Unit/tests/TestListenerTest.pm:
Renamed Test::Unit::TestListener to Test::Unit::Listener
* lib/Test/Unit/Decorator.pm: New file.
* MANIFEST, lib/Test/Unit/Decorator.pm, lib/Test/Unit/TestDecorator.pm, lib/Test/Unit/TestSetup.pm:
Renamed Test::Unit::TestDecorator to Test::Unit::Decorator
* lib/Test/Unit/Loader.pm: New file.
* ChangeLog, MANIFEST, lib/Test/Unit/HarnessUnit.pm, lib/Test/Unit/Loader.pm, lib/Test/Unit/TestListener.pm, lib/Test/Unit/TestLoader.pm, lib/Test/Unit/TkTestRunner.pm:
Renamed Test::Unit::TestLoader to Test::Unit::Loader
2001-09-07 Piers Cawley <[email protected]>
* lib/Test/Unit/TestCase.pm
(run_bare): Made sure it returns true if it doesn't throw an exception.
* lib/Test/Unit/tests/AssertTest.pm
(test_fail_assert_not_equals):
(test_success_assert_not_equals): Added tests for assert_not_equals.
* lib/Test/Unit/Assert.pm
Doc fixes.
(assert_not_equals): Aadded the option to assert that things
aren't equal. Also added appropriate
(assert_(str|num)_not_equals) methods.
2001-09-02 Piers Cawley <[email protected]>
* lib/Test/Unit/Loader.pm
(load): Improved the error message when a file can be found, but
has a syntax error.
* lib/Test/Unit/TestFailure.pm:
Removed.
* lib/Test/Unit/InnerClass.pm:
Removed
* lib/Test/Unit/tests/AssertTest.pm
Switched to a ResultsMatrix style of testing. Seems to work quite
well...
* lib/Test/Unit/Assert.pm
(is_numeric): Got rid of warnings when the argument isn't numeric.
* t/all_tests.t:
* t/assert_test.t:
Got rid of C<use lib '../lib'> since blib should be handling that.
* lib/Test/Unit/tests/TestTest.pm:
Basic refactoring to use Class::Inner.
(make_dummy_testcase): New helper method to make anonymous
classes used in many of the tests.
* lib/Test/Unit/Assertion/Boolean.pm
(do_assertion): Switched to a slightly more sensible way of
generating failure messages.
* lib/Test/Unit/Loader.pm
(load): Changed the order in which we call C<try_test_suite> and
C<try_test_case>.
* lib/Test/Unit/TestResult.pm:
Removed dependency on Test::Unit::TestFailure.
* lib/Test/Unit/ExceptionError.pm
(make_from_error_simple): Fixed things up slightly. This method
maybe needs a leading underscore; Framework users should probably
never see it...
* lib/Test/Unit/Assertion.pm
(fail): Fixed things to put appropriate information into the
thrown exception.
* lib/Test/Unit/Assert.pm:
General refactoring work to get things working with the CPAN
modules.
(assert): Now, when an exception is generated, we try and get the
appropriate caller information for setting -line and -file. Which
is nice.
(assert_equals): Fixed to use try/catch. Fixed a nasty bug with @_
getting silently emptied via try, so now, before we call try, we
copy @_ to @args and use that inside the closure, otherwise
assert_equals would always return true.
(assert_str_equals,assert_num_equals,assert_null,assert_not_null):
All now set $Error::Depth correctly.
* lib/Test/Unit/Exception.pm
(stringify): Tidied up stringification.
(failed_test, thrown_exception): We now conform to the
Test::Unit::TestFailure interface. Which means that we can get rid
of Test::Unit::TestFailure itself. Which is nice.
* lib/Test/Unit.pm:
Switched to using Devel::Symdump, Class::Inner and Error
(assert): Moved to the try/catch style.
(create_suite): Vaguely major refactoring. Switched to using
Devel::Symdump and Class::Inner instead of the hand rolled symbol
table manipulation and Test::Unit::InnerClass
2001-08-31 Piers Cawley <[email protected]>
* lib/Test/Unit.pm: Fixed a silly typo induced bug.
* MANIFEST, MANIFEST.SKIP, Makefile.PL, examples/patch100132, examples/procedural-adding-suites-example.pl, examples/procedural-another-package-example.pl, examples/procedural-fail-example.pl, examples/procedural-ok-example.pl, lib/Test/Unit.pm, lib/Test/Unit/Assertion.pm, lib/Test/Unit/Assertion/Boolean.pm, lib/Test/Unit/Assertion/CodeRef.pm, lib/Test/Unit/Assertion/Regexp.pm, lib/Test/Unit/Exception.pm, lib/Test/Unit/ExceptionError.pm, lib/Test/Unit/HarnessUnit.pm, lib/Test/Unit/InnerClass.pm, lib/Test/Unit/Test.pm, lib/Test/Unit/TestCase.pm, lib/Test/Unit/TestDecorator.pm, lib/Test/Unit/TestFailure.pm, lib/Test/Unit/TestLoader.pm, lib/Test/Unit/TestResult.pm, lib/Test/Unit/TestRunner.pm, lib/Test/Unit/TestSetup.pm, lib/Test/Unit/TestSuite.pm, t/try_examples.t:
Beginnings of a major refactoring.
1. Replace Test::Unit::InnerClass with Class::Inner
2. Use Error.pm as the basis for exception handling and try/catch/...
in place of eval.
3. Use Devel::Symdump in place of hand rolled symbol table manipulation.
4. Also includes an attempt at an 'assert_equals' that does the right
thing in most cases. Tries to make reasonable guesses about numeric or
string comparison, and can make use of object based equality things.
5. Started to port jUnit tests that make sense in the context of PerlUnit.
TODO: Need to get the procedural Test::Unit working. Or abandon it. However,
it does do some stuff that Test::More and friends don't (no plan testing
that actually produces a sensible 'test count')
Write more tests. (Patches welcome)
* t/assert.t:
Calls the (too) simple set of tests for Test::Unit::Assert and friends.
* t/assert.t: New file.
2001-08-30 Piers Cawley <[email protected]>
* lib/Test/Unit/Assert.pm:
Removed some warnings when called with 'undef'.
Also added a stringification of undef to <undef> when reporting failures...
2001-06-18 Christian Lemburg <[email protected]>
* Changes, MANIFEST, examples/README, examples/fail_example.pm, lib/Test/Unit.pm, lib/Test/Unit/TestDecorator.pm, lib/Test/Unit/TestResult.pm, lib/Test/Unit/TestSetup.pm:
added TestSetup and TestDecorator by Kevin Connor
2001-05-05 Christian Lemburg <[email protected]>
* README, Changes: for version 0.14
* t/try_examples.t: do not assume order of tests will be constant
* lib/Test/Unit/Assertion/Boolean.pm:
fix for problem with use base and older perls
* lib/Test/Unit/Assert.pm: document Piers additions
* lib/Test/Unit.pm: new version, updated team member list
2001-04-27 Matthew Astley <[email protected]>
* t/try_examples.t: add redirection warning for Win32
2001-04-09 Matthew Astley <[email protected]>
* doc/consensus.txt:
wittering about packaging, plus my vague plan for things I fancy doing
* t/try_examples.t:
checks STDOUT & STDERR together, from invoking the examples
doesn't look at return codes
2001-03-19 Piers Cawley <[email protected]>
* lib/Test/Unit.pm, lib/Test/Unit/InnerClass.pm, lib/Test/Unit/TestSuite.pm, lib/Test/Unit/UnitHarness.pm:
Redid Test::Unit::InnerClass to be more 'classlike'. (ie, calling
Test::Unit::InnerClass::make_inner_class as a class method rather than as a
direct subroutine call)
Added Test::Unit::InnerClass::make_inner_class_with_coderefs
Instead of taking an extension_text argument, takes a hash of coderefs
and uses the keys as method names. Lets you do closure magic and the like
when creating inner classes.
Moved Test::Unit::InnerClass::make_inner_class to
T::U::IC::make_inner_class_with_text. The make_inner_class subroutine now
looks at $_[2] to determine whether to dispatch to the _with_text version
of the method or the _with_coderefs version.
Modified all the clients of Test::Unit::InnerClass to do proper Class based