2010-12-15 88 views

Répondre

1

Je viens de parler à quelqu'un chez NI.

Il existe des cadres de test unitaires pour NI Lab View, qui sont complètement différents.

Il n'existe actuellement aucune solution de NI. Dans le passé certaines personnes ont résolu leurs problèmes en utilisant TestComplete - une autre route pourrait utiliser CUnit.

EDIT:

En utilisant CUNIT CVI est vraiment facile - si vous faites face encore quelques obstacles linguistiques:

#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" 

En utilisant theese comprennent des énoncés devrait vous permettre d'exécuter ce code:

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; 
} 

Copiez également ces fichiers dans votre répertoire de résultats:

CUnit-List.dtd 
CUnit-List.xsl 
CUnit-Run.dtd 
CUnit-Run.xsl 
md2xml.pl 
Memory-Dump.dtd 
Memory-Dump.xsl 
1

Nous utilisons également CUnit avec CMock (ThrowTheStick) ici. Avec CVI, vous pouvez même automatiser les scripts Ruby pour exécuter le constructeur de test_runner avec somethine comme

"%RUBY_HOME%\bin\ruby.exe" "%UNITY_HOME%\auto\generate_test_runner.rb" 

Test_TestCycleFSM.c dans votre pré-construire des marches. Vous devrez peut-être compiler votre projet deux fois pour générer le fichier source et le compiler ensuite.

Après tout, Cunit semble être la suite dans les tests C.

+0

J'ai eu des problèmes avec Cunit, mais vous pouvez réellement utiliser gtest et importer les en-têtes C avec emballage extern « C » autour d'eux. Tout ce dont vous avez besoin est un compilateur capable de faire du C et du C++. À la fin je l'ai résolu en jetant CVI et en utilisant VS2010. – Johannes

+1

@Johannes: J'ai (littéralement) supplié pour ça. Mais je suis lié à CVI et c'est l'option "il n'y a pas de build propre". – Oliver

+0

Je vous entends si bien. Je n'étais toujours pas capable de convaincre tout le monde. Mon entreprise paie à travers CVI, et n'utilise même pas ses "caractéristiques". Peut-être que nous devrions nous diriger vers la section des programmeurs et commencer une discussion sur ce qui est mauvais dans CVI. :) – Johannes