Frage

Wir entwickeln in C ++ unter Linux und über automatisierte Tests einzurichten. Wir beabsichtigen, einen Test-Framework wie CppUnit oder CxxTest zu verwenden. Wir Ant mit der Software zu bauen, und wir werden es auch die Tests ausführen verwenden.

Da einige Tests werden Zugriff auf die Datenbank beteiligen, suchen wir für ein Werkzeug oder Rahmen, der die Aufgaben der Vorbereitung und Reinigung von Testdaten in der Datenbank erleichtert -. Wie DbUnit (a JUnit-Erweiterung) in der Java-Welt

Eine andere Möglichkeit kann sein, die tatsächliche DbUnit zu verwenden - eine Java VM zur Verfügung steht. Die Nutzung von DbUnit der Ant-Task scheint sehr vielversprechend zu sein. Alle damit verbundenen Erfahrungsberichte sind willkommen!

War es hilfreich?

Lösung 3

Wie es scheint Entwicklung ++ für C kein DbUnit artiges Werkzeug zu sein, haben wir einen kleinen Rahmen unserer eigenen gebaut. Im Grunde ist es ein Adapter für die tatsächlichen DbUnit Operationen aus C / C ++ testrunners aufrufen. Es nutzt die Ant Aufgaben von DbUnit zur Verfügung gestellt.

Wir definierten einige Makros wie TS_DB_INSERT(filename) die system("ant -Ddb.dataset=filename db.insert") und dergleichen nennen.

In diesem Fall db.insert ist ein Ant-Ziel, das eine DbUnit Aufgabe ausführt, auf der Datenbank eine INSERT-Operation ausführen. Die filename verweist auf einen XML-Datensatz mit den Daten einzufügen. Es gibt auch eine Behauptung, Makro, die eine DbUnit compare hüllt.

Der Testfall könnte wie folgt aussehen:

void testDatabaseStuff
{
    TS_DB_INSERT("input.xml");

    TestedClass::doSomething();

    TS_DB_ASSERT("expected.xml");
}

Andere Tipps

würde ich Verstärkungseinheit empfehlen Testen . Sie würden wahrscheinlich um das Setup zu verwenden und Abrüsten, um manuell die Datenbank zu bereinigen. Natürlich könnten Sie Ihre eigenen C ++ DbUnit in ODBC bauen. Wenn Sie das tun lassen Sie mich wissen, weil ich das so gut nutzen könnte!

Ich nehme an, Sie haben Ihren eigenen C ++ api mit der DB zu arbeiten. Wenn es wahr ist, sollten Sie besser alle Vorbereitung Ihrer DB mit dem eigenen tun. In diesem Fall werden Sie Ihren DB-API als auch testen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top