Ich bin gezwungen, NI Lab Windows CVI zu verwenden, und ich würde gerne mit TDD arbeiten. Ich konnte jedoch keine Testframeworks für diese IDE finden. Gibt es bekannte Lösungen?Welche Testframeworks sind für NI Lab Windows CVI verfügbar?
Antwort
Ich habe gerade mit jemandem bei NI gesprochen.
Es gibt Unit Test Frameworks für NI Lab View, die etwas völlig anderes sind.
Es gibt derzeit keine Lösung von NI. In der Vergangenheit haben einige Leute ihre Probleme mit TestComplete gelöst - eine andere Route könnte CUnit verwenden.
EDIT:
mit CVI Mit CUNIT ist wirklich einfach - auch wenn Sie noch einige Sprachbarrieren konfrontiert:
#include "CUError.h"
#include "CUError.c"
#include "CUnit.h"
#include "MyMem.h"
#include "MyMem.c"
#include "TestDB.h"
#include "TestDB.c"
#include "TestRun.h"
#include "TestRun.c"
#include "Util.h"
#include "Util.c"
#include "Automated.h"
#include "Automated.c"
Mit theese Aussagen enthalten sollte Ihnen ermöglichen, diesen Code auszuführen:
static void testFail(void)
{
CU_ASSERT(0);
}
//Suite Definitions
static CU_TestInfo tests_GenList[] = {
{ "Should Fail", testFail },
CU_TEST_INFO_NULL,
};
static CU_SuiteInfo suites[] = {
{ "Generic List Suites", NULL, NULL, tests_GenList },
CU_SUITE_INFO_NULL,
};
void AddTests(void)
{
assert(NULL != CU_get_registry());
assert(!CU_is_test_running());
/* Register suites. */
if (CU_register_suites(suites) != CUE_SUCCESS) {
fprintf(stderr, "suite registration failed - %s\n",
CU_get_error_msg());
exit(EXIT_FAILURE);
}
}
int main (void)
{
CU_initialize_registry();
AddTests();
CU_set_output_filename("Result\\TestAutomated");
CU_list_tests_to_file();
CU_automated_run_tests();
CU_cleanup_registry();
return 0;
}
Kopieren Sie auch diese Dateien in Ihr Ergebnisverzeichnis:
CUnit-List.dtd
CUnit-List.xsl
CUnit-Run.dtd
CUnit-Run.xsl
md2xml.pl
Memory-Dump.dtd
Memory-Dump.xsl
Wir verwenden auch CUnit mit CMock (ThrowTheStick) hier. Mit cvi können Sie sogar die Ruby-Skripte automatisieren die test_runner Builder mit somethine wie
"%RUBY_HOME%\bin\ruby.exe" "%UNITY_HOME%\auto\generate_test_runner.rb"
Test_TestCycleFSM.c auszuführen in Ihren Schritten vorge bauen. Sie müssen vielleicht Ihr Projekt zweimal kompilieren, um die Quelldatei zu generieren und sie dann zu kompilieren.
Immerhin scheint CUnit die Tests Suite
Ich hatte Probleme mit CUnit in C zu sein, aber man kann tatsächlich Gtest verwenden und die C-Header mit extern „C“ Umwickeln sie importieren. Sie benötigen lediglich einen Compiler, der sowohl C als auch C++ ausführen kann. Am Ende habe ich es gelöst, indem ich CVI rausgeworfen und VS2010 benutzt habe. – Johannes
@Johannes: Ich habe (buchstäblich) darum gebeten. Aber ich bin an CVI gebunden und es ist "es gibt keine saubere Build" -Option. – Oliver
Ich höre dich so. Ich konnte immer noch nicht alle überzeugen. Meine Firma zahlt sich für CVI aus und nutzt nicht einmal ihre "Funktionen". Vielleicht sollten wir zum Programmiererbereich gehen und einen Thread darüber starten, was in CVI schlecht ist. :) – Johannes