Unit Testing mit Autotools

05/12/2008 - 17:23 von Michael Schuerig | Report spam
Ich habe (zu) lange nicht mehr in C programmiert, aber inzwischen einen
Grund gefunden, das wieder zu tun. Da ich Unit Tests schreiben will,
suche ich noch ein geeignetes Testframework. Es gibt eine betràchtliche
Anzahl an Kandidaten

http://en.wikipedia.org/wiki/List_o...ameworks#C

Aber keines dieser Frameworks ist anscheinend dominant. Für den Anfang
möchte ich mich gerne eher im Mainstream halten und erst spàter, mit
mehr Erfahrung, eventuell ein anderes Werkzeug auswàhlen.

Wichtig ist für mich, dass das FW sich mit den Autotools vertràgt.
Schön, aber nicht zwingend, wàre, wenn es àhnlich wie andere xUnit-FWs
funktionieren würde.

Michael

Michael Schuerig
mailto:michael@schuerig.de
http://www.schuerig.de/michael/
 

Lesen sie die antworten

#1 Markus Raab
05/12/2008 - 20:55 | Warnen spam
Michael Schuerig wrote:

Wichtig ist für mich, dass das FW sich mit den Autotools vertràgt.
Schön, aber nicht zwingend, wàre, wenn es àhnlich wie andere xUnit-FWs
funktionieren würde.



Willst du irgendwelche besonderen Statistiken, Regressionstests o.à.?

Wenn du nur ein make check supporten willst wo eine Reihe handgeschriebener
Tests durchlaufen soll (und laut schreien wenns wo ein Fehler gibt), dann
sind wahrscheinlich kleine Makros wie:

#define warn_if_fail(x,y) {nbTest++; if (!(x)) { printf("%s:%d: warn \
in %s: %s", __FILE__, __LINE__, __FUNCTION__, y); }}
#define succeed_if(x,y) {nbTest++; if (!(x)) { nbError++; printf("%s:%d: \
error in %s: %s", __FILE__, __LINE__, __FUNCTION__, y); }}
#define exit_if_fail(x,y) {nbTest++; if (!(x)) { printf("%s:%d: fatal \
in %s: %s", __FILE__, __LINE__, __FUNCTION__, y); exit(1); }

ausreichend. Da das Format wie vom gcc Compiler ist und make check dann auch
ein Rückgabewert > 0 hat springt dir dein Editor dann auch in die richtige
Zeile wo der Check fehlgeschlagen ist.

Automake integration geht mit:
TESTS = ...
check_PROGRAMS = ...

für jedes Testprogramm welches ausgeführt werden soll.

Willst du mehr Komfort dann sage uns bitte welcher das sein soll, dann kann
man dir auch sicher genauer ein Tool empfehlen.

mfg Markus

Ähnliche fragen