1

NI Lab Windows CVI を使用せざるを得ないので、TDD で作業したいと思っています。ただし、その IDE のテストフレームワークは見つかりませんでした。既知の解決策はありますか?

4

2 に答える 2

1

NIの誰かと話したところです。

NI Lab View 用の単体テスト フレームワークがありますが、これはまったく別のものです。

現在、NI からの解決策はありません。過去にTestCompleteを使用して問題を解決した人もいました- 別のルートがCUnitを使用している可能性があります。

編集:

CVI で CUNIT を使用するのは非常に簡単ですが、それでも言語の壁に直面します。

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

これらのファイルも Result ディレクトリにコピーします。

CUnit-List.dtd
CUnit-List.xsl
CUnit-Run.dtd
CUnit-Run.xsl
md2xml.pl
Memory-Dump.dtd
Memory-Dump.xsl
于 2010-12-15T14:55:56.627 に答える
1

ここでも CUnit を CMock ( ThrowTheStick ) と共に使用します。cvi を使用すると、Ruby スクリプトを自動化して、次のようなもので test_runner ビルダーを実行することもできます

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

ビルド前のステップの Test_TestCycleFSM.c。ソースファイルを生成してからコンパイルするために、プロジェクトを 2 回コンパイルする必要がある場合があります。

結局のところ、CUnitは Cテスト スイートのようです。

于 2012-12-04T09:27:18.283 に答える