2010-12-15 11 views

Antwort

1

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 
1

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

+0

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

+1

@Johannes: Ich habe (buchstäblich) darum gebeten. Aber ich bin an CVI gebunden und es ist "es gibt keine saubere Build" -Option. – Oliver

+0

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