Unit Testing Frameworks für C: Vergleich

8

Ich bin ein Ruby-Programmierer und ich mag es sehr, TDD zu machen. Im Moment programmiere ich ein bisschen in C, aber ich mag meine Werkzeuge und die Art, wie ich mit Ruby programmiere. Also suche ich nach einem Rahmenwerk, um Komponententests in C durchzuführen. Was können Sie mir dazu sagen?

Ich habe bereits einige Optionen gefunden, wie zum Beispiel: cunit, conomer, CuTest und andere. Das Problem ist, ich weiß nicht, wie ich das Beste beurteilen soll. Ich schreibe einen einfachen Compiler für meinen Compilerkurs.

Könnten Sie mir helfen?

    
Hugo Barauna 23.09.2009, 19:30
quelle

4 Antworten

3

Sie können jedes C- oder C ++ Unit-Testframework verwenden. Es ist einfach, C-Funktionen von C ++ aus aufzurufen.

Meine Meinung ist, dass Sie so wenig Ergebnisse wie möglich von Ihren Tests haben wollen. Wenn also alles in Ordnung ist, sollte '100% passed' gedruckt werden. Ansonsten sollten nur Details von Testfehlern ausgedruckt werden.

Siehe xprogramming.com , scrollen Sie nach unten zur Unit-Testtabelle und suchen Sie nach den Frameworks C Language oder C++ . Der "Standard" scheint cppUnit zu sein.

    
quamrana 24.09.2009, 11:03
quelle
3
___ qstntxt ___

Ich bin ein Ruby-Programmierer und ich mag es sehr, TDD zu machen. Im Moment programmiere ich ein bisschen in C, aber ich mag meine Werkzeuge und die Art, wie ich mit Ruby programmiere. Also suche ich nach einem Rahmenwerk, um Komponententests in C durchzuführen. Was können Sie mir dazu sagen?

Ich habe bereits einige Optionen gefunden, wie zum Beispiel: cunit, conomer, CuTest und andere. Das Problem ist, ich weiß nicht, wie ich das Beste beurteilen soll. Ich schreibe einen einfachen Compiler für meinen Compilerkurs.

Könnten Sie mir helfen?

    
___ answer 1475595 ___

Ich habe gtest verwendet und festgestellt, dass es ziemlich einfach zu verwenden ist (es ist jedoch C ++). Wirklich, es spielt doch keine Rolle, welches du wählst. Wähle einen aus und lerne ihn.

    
___ tag123c ___ C ist eine universelle Computerprogrammiersprache, die für Betriebssysteme, Bibliotheken, Spiele und andere Hochleistungsanwendungen verwendet wird. Dieses Tag sollte bei allgemeinen Fragen zur C-Sprache verwendet werden, wie in der Norm ISO 9899: 2011 definiert. Fügen Sie ggf. ein versionsspezifisches Tag wie c99 oder c90 für Fragen zu älteren Sprachstandards hinzu. C unterscheidet sich von C ++ und es sollte nicht mit dem C ++ - Tag kombiniert werden, wenn ein rationaler Grund fehlt. ___ answer5296861 ___

Es gibt eine Wiki-Seite, die Informationen zu rund 20 C-kompatiblen Unit-Test-Frameworks auflistet. Während es nicht genug Informationen sein kann, um eine Entscheidung zu treffen, ist es ein guter Ausgangspunkt.

    
___ qstnhdr ___ Unit Testing Frameworks für C: Vergleich ___ tag123tdd ___ Test-Driven Development (TDD) beinhaltet das Schreiben eines fehlgeschlagenen automatisierten Tests, um anzugeben, was erstellt werden soll. Der Test wird dann durchgeführt, um einen Code zu schreiben, der die getestete Bedingung erfüllt. Schließlich wird der Code überarbeitet. ___ answer1470977 ___

Sie können jedes C- oder C ++ Unit-Testframework verwenden. Es ist einfach, C-Funktionen von C ++ aus aufzurufen.

Meine Meinung ist, dass Sie so wenig Ergebnisse wie möglich von Ihren Tests haben wollen. Wenn also alles in Ordnung ist, sollte %code% gedruckt werden. Ansonsten sollten nur Details von Testfehlern ausgedruckt werden.

Siehe xprogramming.com , scrollen Sie nach unten zur Unit-Testtabelle und suchen Sie nach den Frameworks %code% oder %code% . Der "Standard" scheint cppUnit zu sein.

    
___ answer18972102 ___

Unity , ein Testframework für C hat eine breite Palette von Assertions, einschließlich bitweiser Vergleiche und Speicherblockvergleiche . Wenn Sie nicht mit einer großen Legacy-Codebasis arbeiten, rate ich Ihnen, Ceedling , das Mutterprojekt von Einheit. Ceedling erstellt Ihre Unity-Tests, Produktionscode und integriert ein nettes Spottframework namens CMock . CMock kann automatisch einen Schein / Ersatz für ein Modul aus dem Header seiner öffentlichen Schnittstelle generieren.

Es gibt ein Video, in dem Sie erfahren, wie Sie mit Ceedling und Unity beginnen können . (DISCLAIMER: Ich habe das Video erstellt).

Eine Alternative ist CppUTest . Es kompiliert zu 1 statischen Bibliothek (2, wenn Sie es verwenden möchten, ist Mock Framework, CppUMock ). Tests werden in C ++ geschrieben und integrieren sich in Ihr bestehendes Makefile-Projekt. Es bietet auch Alternativen zur Speicherlecksuche für malloc / free, new / delete. Im Vergleich dazu sind die Assertions nicht so umfassend wie Unity, aber wahrscheinlich besser zum Testen von älteren C / C ++ - Projekten geeignet.

    
___
Paul Wicks 25.09.2009 05:40
quelle
1

Es gibt eine Wiki-Seite, die Informationen zu rund 20 C-kompatiblen Unit-Test-Frameworks auflistet. Während es nicht genug Informationen sein kann, um eine Entscheidung zu treffen, ist es ein guter Ausgangspunkt.

    
Robert S. Barnes 14.03.2011 09:36
quelle
1

Unity , ein Testframework für C hat eine breite Palette von Assertions, einschließlich bitweiser Vergleiche und Speicherblockvergleiche . Wenn Sie nicht mit einer großen Legacy-Codebasis arbeiten, rate ich Ihnen, Ceedling , das Mutterprojekt von Einheit. Ceedling erstellt Ihre Unity-Tests, Produktionscode und integriert ein nettes Spottframework namens CMock . CMock kann automatisch einen Schein / Ersatz für ein Modul aus dem Header seiner öffentlichen Schnittstelle generieren.

Es gibt ein Video, in dem Sie erfahren, wie Sie mit Ceedling und Unity beginnen können . (DISCLAIMER: Ich habe das Video erstellt).

Eine Alternative ist CppUTest . Es kompiliert zu 1 statischen Bibliothek (2, wenn Sie es verwenden möchten, ist Mock Framework, CppUMock ). Tests werden in C ++ geschrieben und integrieren sich in Ihr bestehendes Makefile-Projekt. Es bietet auch Alternativen zur Speicherlecksuche für malloc / free, new / delete. Im Vergleich dazu sind die Assertions nicht so umfassend wie Unity, aber wahrscheinlich besser zum Testen von älteren C / C ++ - Projekten geeignet.

    
doughgle 24.09.2013 02:39
quelle

Tags und Links