On 16/04/13 08:14, Michael Van Canneyt wrote:
>> .... 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@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 warnings at all.



And here is the FPTest results:


graemeg@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 -


--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to