Какие тестовые рамки доступны для NI Lab Windows CVI? - PullRequest
1 голос
/ 15 декабря 2010

Я вынужден использовать NI Lab Windows CVI, и мне очень хотелось бы работать с TDD. Однако я не смог найти какие-либо тестовые рамки для этой IDE. Есть ли известные решения?

Ответы [ 2 ]

1 голос
/ 04 декабря 2012

Мы также используем CUnit с CMock ( ThrowTheStick ) здесь. С помощью cvi вы даже можете автоматизировать сценарии ruby ​​для запуска построителя test_runner с чем-то вроде

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

Test_TestCycleFSM.c в ваших шагах перед сборкой. Возможно, вам придется скомпилировать ваш проект дважды, чтобы сгенерировать исходный файл и затем скомпилировать его.

В конце концов, CUnit, похоже, набор тестов в C.

1 голос
/ 15 декабря 2010

Я только что говорил с кем-то в NI.

Существуют фреймворки модульного тестирования для NI Lab View, которые являются чем-то совершенно другим.

В настоящее время нет решения от NI. В прошлом некоторые люди решали свои проблемы, используя TestComplete - другой маршрут мог использовать CUnit .

EDIT:

Использование CUNIT с CVI действительно просто - хотя вы все еще сталкиваетесь с некоторыми языковыми барьерами:

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

Использование этих операторов include должно позволить вам запустить этот код:

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

Также скопируйте эти файлы в свой каталог результатов:

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