Michael Van Canneyt wrote 6 lines
> .... lack of warnings about
> tests that don't actually call any AssertXXX() methods,
I have lots of such methods ?
if xyz then
fail()
Uh... here is an example of what I am talking about.
---------------------
unit TestCase1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, fpcunit, testutils, testregistry;
type
TTestCase1 = class(TTestCase)
published
procedure SilentFailure;
end;
implementation
procedure TTestCase1.SilentFailure;
var
i: integer;
begin
i := 10;
// Test doesn't actually call AssertXXX() or CheckXXX(), yet FPCUnit
thinks it passed
end;
initialization
RegisterTest(TTestCase1);
end.
--------------------------
And here is the FPCUnit results..
graemeg at ubuntu:/tmp$ ./fpcunitproject1 -a --format=plain Time:00.000 N:1 E:0 F:0 I:0
TTestCase1 Time:00.000 N:1 E:0 F:0 I:0
00.000 SilentFailure
Number of run tests: 1
Number of errors: 0
Number of failures: 0
Yes a simple example, but this issue is very possible in complex tests, or if the developer got sidetracked. And note, FPCUnit reported no problems or here is the FPTest results:
graemeg at ubuntu:/tmp$ ./project2
FPTest / Testing
.W
Time: 00:00:00.000
OK: 1 tests
There was 1 warning:
1) project2.TMyTestCase.SilentFailure: EPostTestWarning at $00000000004001A0
No checks executed in TestCase
Regards,
- Graeme -