ユニットテストCコード[終了]


853

この夏、ストレートCで書かれた組み込みシステムの作業をしました。これは、私の会社が引き継いだ既存のプロジェクトでした。私はJUnitを使用してJavaで単体テストを作成することに慣れてきましたが、既存のコード(リファクタリングが必要)とシステムに追加された新しいコードの単体テストを作成する最良の方法について途方に暮れていました。

JUnitでJavaコードを単体テストするのと同じくらい簡単にプレーンCコードを単体テストできるプロジェクトはありますか?組み込み開発(arm-linuxプラットフォームへのクロスコンパイル)に特に当てはまる洞察があれば、高く評価されます。



2
@zmo — Software Recommendationsは、ソフトウェアの推奨事項を取得するためのStack Exchangeサイトです。使ったことがないので、どれだけ上手くいくかわかりません。投稿する前に、投稿ルールを確認してください。
ジョナサンレフラー

回答:


495

Cの単体テストフレームワークの1つがCheckです。Cの単体テストフレームワークのリストはここにあり、以下に再現されています。ランタイムが持つ標準ライブラリ関数の数に応じて、それらのいずれかを使用できる場合と使用できない場合があります。

AceUnit

AceUnit(Advanced C and Embedded Unit)は、快適なCコードユニットテストフレームワークとして課金されます。JUnit 4.xを模倣しようとし、反射のような機能が含まれています。AceUnitは、組み込みソフトウェア開発などのリソース制約環境で使用できます。重要なのは、単一の標準ヘッダーファイルを含めることができず、ANSI / ISO Cライブラリから単一の標準C関数を呼び出すことができない環境で正常に動作することです。Windowsポートも備えています。信号をトラップするためにフォークを使用しませんが、作者はそのような機能を追加することに関心を示しています。AceUnitホームページをご覧ください。

GNU Autounit

単体テストを別のアドレス空間で実行するためのforkを含め、Checkとほぼ同じ行に沿っています(実際、Checkの元の作者は、GNU Autounitからアイデアを借用しました)。GNU AutounitはGLibを幅広く使用しています。つまり、リンクなどには特別なオプションが必要ですが、特にGTKまたはGLibを既に使用している場合は、これは大きな問題ではない可能性があります。GNU Autounitホームページを参照してください。

cUnit

GLibも使用しますが、単体テストのアドレス空間を保護するためにforkしません。

CUnit

標準C、Win32 GUI実装の計画。現在、単体テストのアドレス空間をフォークまたは保護しません。初期の開発中。CUnitホームページを参照してください。

CuTest

ソースツリーにドロップする1つの.cファイルと1つの.hファイルのみを含む単純なフレームワーク。CuTestのホームページをご覧ください。

CppUnit

C ++用の最高の単体テストフレームワーク。Cコードのテストにも使用できます。安定しており、活発に開発されており、GUIインターフェイスを備えています。CでCppUnitを使用しない主な理由は、最初にCppUnitが非常に大きいこと、次にC ++でテストを作成する必要があることです。つまり、C ++コンパイラが必要です。これらが問題のように聞こえない場合は、他のC ++ユニットテストフレームワークと一緒に検討する価値があります。CppUnitホームページを参照してください。

embUnit

embUnit(Embedded Unit)は、組み込みシステム用のもう1つの単体テストフレームワークです。これはAceUnitに取って代わられたようです。組み込みユニットホームページ

MinUnit

マクロの最小限のセットとそれだけです!ポイントは、コードの単体テストがいかに簡単かを示すことです。MinUnitホームページをご覧ください。

安藤さんのCUnit

かなり新しいCUnit実装で、明らかにまだ開発の初期段階です。安藤さんCUnitホームページをご覧ください。

このリストは、2008年3月に最終更新されました。

その他のフレームワーク:

CMocka

CMockaは、モックオブジェクトをサポートするCのテストフレームワークです。使い方もセットアップも簡単です。

CMockaのホームページをご覧ください。

基準

Criterionは、自動テスト登録、パラメーター化されたテスト、理論をサポートするクロスプラットフォームのCユニットテストフレームワークであり、TAPやJUnit XMLなどの複数の形式に出力できます。各テストは独自のプロセスで実行されるため、必要に応じて信号とクラッシュを報告またはテストできます。

詳細については、Criterionホームページを参照してください。

HWUT

HWUTは、Cを強力にサポートする一般的な単体テストツールです。Makefileの作成、最小限の「反復テーブル」でコード化された大規模なテストケースの生成、ステートマシンのウォークスルー、Cスタブの生成などに役立ちます。一般的なアプローチはかなり独特です:評決は「良い標準出力/悪い標準出力」に基づいています。ただし、比較機能には柔軟性があります。したがって、任意のタイプのスクリプトをチェックに使用できます。標準出力を生成できる任意の言語に適用できます。

HWUTのホームページをご覧ください。

CGreen

CおよびC ++向けの、モダンで移植可能な、クロス言語の単体テストおよびモックフレームワーク。オプションのBDD表記、モックライブラリ、単一プロセスで実行する機能(デバッグを容易にするため)を提供します。テスト機能を自動で発見するテストランナーが利用可能です。ただし、プログラムで独自に作成できます。

これらすべての機能(およびその他)は、CGreenマニュアルで説明されています

ウィキペディアの「ユニットテストフレームワークのリスト:C」に、Cユニットテストフレームワークの詳細なリストが記載されています


最初は、Checkは非常に安定しています。私はそれが実際の使用の火の下でどのように維持されるかを確認する必要があります...しかし、それは確かに法案に合うかもしれないように見えます。
ポールオズボーン、

8
組み込みシステムでユニットテストコードのチェックを使用します。ほとんどの場合チェックは良い選択でしたが、現在uClinuxで実行されているシステムで作業しています。チェックがフォークを必要とするため、それらのシステムでは機能しません。:/
デビッドホルム

1
@labyrinth Ubuntuのものは2002年のものです。最新バージョンは今年のものです(このコメントの時点では2014年)。ソースからコンパイルする必要がありました。
バリーブラウン

4
HWUTは、リモートで制御可能なスタブを生成します。これは、ハードワードドライバーと相互作用するモジュールのテストを作成する場合に非常に便利です。これらのドライバーは、ほとんどの場合、PCにはありません。HWUTドキュメント
Frank-

1
チェックのGithubページによると、最新バージョンは2016年12月17日に0.11.0リリースされています。
Mandeep Sandhu 2017

164

個人的には、Google Testフレームワークが好きです。

Cコードをテストする際の本当の困難は、外部モジュールへの依存関係を壊して、コードをユニットに分離できるようにすることです。これは、レガシーコードに関するテストを取得しようとする場合に特に問題になります。この場合、テストでスタブ関数を使用するためにリンカーを使用していることがよくあります。

これは、人々が「継ぎ目」について話すときに言及するものです。Cでは、実際の唯一のオプションは、プリプロセッサまたはリンカーを使用して依存関係を模擬することです。

私のCプロジェクトの1つの典型的なテストスイートは次のようになります。

#include "myimplementationfile.c"
#include <gtest/gtest.h>

// Mock out external dependency on mylogger.o
void Logger_log(...){}

TEST(FactorialTest, Zero) {
    EXPECT_EQ(1, Factorial(0));
}

実際にはヘッダーファイルではなくCファイルをインクルードしていることに注意してください。これにより、すべての静的データメンバーにアクセスできるという利点があります。ここで私はロガー(logger.oにある可能性があり、空の実装を提供します。これは、テストファイルが残りのコードベースとは独立してコンパイルおよびリンクされ、分離して実行されることを意味します。

コードをクロスコンパイルする場合、これが機能するには、ターゲットに適切な機能が必要です。PowerPCアーキテクチャ上のLinuxにクロスコンパイルされたgoogletestでこれを行いました。結果を収集するための完全なシェルとosがあるので、これは理にかなっています。リッチではない環境(私は完全なOSのないものとして分類します)では、ホスト上でビルドして実行するだけです。ビルドの一部としてテストを自動的に実行できるように、とにかくこれを行う必要があります。

OOコードは一般に手続き型よりも結合が少ないため、C ++コードのテストは一般にはるかに簡単です(もちろん、これはコーディングスタイルに大きく依存します)。また、C ++では、依存関係の注入やメソッドのオーバーライドなどのトリックを使用して、カプセル化されているコードに継ぎ目を入れることができます。

Michael Feathersは、レガシーコードのテストに関する優れた本を持っています。ある章で、彼は私が強くお勧めする非OOコードを扱うためのテクニックをカバーしています。

編集:私は、GitHubソースを利用できる、ユニットテストの手続き型コードに関するブログ投稿を作成しました。

編集Pragmatic Programmersから発行された、特に推奨するユニットコードCコードを取り上げた新しい本があります。


17
プラグを購入しないでください。プログブック。この質問への回答にない洞察は含まれていません。
Phil

3
CとC ++には多くの重複があることを知っていますが、最終的にCコンパイラでコンパイルされるコードを作成するときにC ++テストライブラリを使用するのは良い考えではありません。
Rafael Almeida

2
@RafaelAlmeida本質的には同意します。ここで示すのは、Cインクルードをextern Cにラップしないプリプロセッサシームです。それにもかかわらず、実際にはC ++はテスト記述言語として非常に便利です。また、テスト用のCベースのフレームワークも作成したので、これについて独断的ではありません:-) github.com/meekrosoft/fff
mikelong

@フィル私は同意しません。私は特にC.実強くない誰かのために、この本は非常に貴重であることが判明
CHendrix

上記のように、HAL関数をモックするためにFake Function Frameworkを使用しています。これはgTestで非常にうまく機能します。github.com/meekrosoft/fff
レオナルド

135

Minunitは非常にシンプルな単体テストフレームワークです。私はそれをavrのcマイクロコントローラーコードの単体テストに使用しています。


5
私は組み込みシステムの経験がないのでコメントできませんが、小さなCプログラム(学業、スクリプト)の場合、これは完璧に見えます。素晴らしいリンク。
AndrewKS 2011年

3
@toasted_flakesこれをgithub gistにしました:gist.github.com/sam159/0849461161e86249f849
Sam

これは、ここで検索を始める前に思いついたものにかなり近いです!テストを自動化してTEST(funcname、body)が関数を作成し、関数へのポインターを格納するようにしたいのですが、外部処理が必要になるようです。
ベンクシギアン2017年

41

私は現在CuTest単体テストフレームワークを使用しています。

http://cutest.sourceforge.net/

非常に軽量でシンプルなため、組み込みシステムに最適です。ターゲットプラットフォームだけでなく、デスクトップでも問題なく動作しました。単体テストの作成に加えて、必要なことは次のとおりです。

  • CuTestルーチンを呼び出す場所に含まれるヘッダーファイル
  • イメージにコンパイル/リンクされる単一の追加の「C」ファイル
  • ユニットテストをセットアップして呼び出すためにmainに追加されたいくつかの単純なコード-ビルド中にUNITTESTが定義されている場合にコンパイルされる特別なmain()関数にこれを含めます。

システムは、ヒープと一部のstdio機能(すべての組み込みシステムが持っているわけではありません)をサポートする必要があります。ただし、コードは非常に単純なので、プラットフォームに要件がない場合は、これらの要件の代替案で作業することができます。

extern "C" {}ブロックの賢明な使用により、C ++のテストも問題なくサポートされます。


1
CuTestへの投票は2番目です。私はニンテンドーDSで自作を開発するためにそれを使用しており、それを設定したり使用したりすることに何の問題もありませんでした。
Theran

私はこれを3番目にします。バージョン1.4のときにダウンロードし、XMLにダンプするように変更しました。ダウンロードして確認しなければならないバージョン1.5があるようです。
テイラー価格

2
CuTestは、QNXシステムで実行されているコードをテストするのにうまく機能しました。
ジェイスブラウニング

それはJUnitのように動作すると主張していますが、私は見逃しBeforeAfter電話をかけているようです。全体として、それはかわいいです。
Dragas

40

私はratkokとほぼ同じと言いますが、ユニットテストに組み込みのひねりがある場合...

Unity -Cコードの単体テストに強く推奨されるフレームワーク。

このスレッドに記載されている本の例組み込みCのTDDは、 Unity(およびCppUTest)を使用して記述されています。


5
UnityとCMockを使用した自動モック生成を組み合わせると非常に優れています。
thegreendroid 2013

cmockの良いチュートリアルを提案できますか?
melwin_jose 2015年

CeocklingによってオーケストレーションされたCMockとUnityの非常に優れたチュートリアルがあります:dmitryfrank.com/articles/unit_testing_embedded_c_applications
Dmitry Frank

35

また、Test Anything Protocol(TAP)を出力するCテストフレームワークであるlibtapを調べて、このテクノロジ用に開発されたさまざまなツールとうまく統合することもできます。これは主に動的言語の世界で使用されていますが、使いやすく、非常に人気があります。

例:

#include <tap.h>

int main () {
    plan(5);

    ok(3 == 3);
    is("fnord", "eek", "two different strings not that way?");
    ok(3 <= 8732, "%d <= %d", 3, 8732);
    like("fnord", "f(yes|no)r*[a-f]$");
    cmp_ok(3, ">=", 10);

    done_testing();
}

私は自分のプロジェクトに対して自分のlibtap相当のものを手で転がしましたが、これが存在することを知ったので、もう自分のものを維持する必要はありません。涼しい!
ephemient 2009年

1
ok(TESTING==IsSimple(), "libtap is super easy to use")
AShelly、2010

26

Cには、cmockaと呼ばれるモックオブジェクトをサポートするエレガントなユニットテストフレームワークがあります。標準Cライブラリのみを必要とし、さまざまなコンピューティングプラットフォーム(組み込みを含む)で動作し、さまざまなコンパイラで動作します。

また、Subunit、Test Anything Protocol、jUnit XMLレポートなどのさまざまなメッセージ出力形式もサポートしています。

cmockaは組み込みプラットフォームでも動作するように作成されており、Windowsもサポートしています。

簡単なテストは次のようになります。

#include <stdarg.h>
#include <stddef.h>
#include <setjmp.h>
#include <cmocka.h>

/* A test case that does nothing and succeeds. */
static void null_test_success(void **state) {
    (void) state; /* unused */
}

int main(void) {
    const struct CMUnitTest tests[] = {
        cmocka_unit_test(null_test_success),
    };
    return cmocka_run_group_tests(tests, NULL, NULL);
}

APIは、完全に文書化され、いくつかの例では、ソースコードの一部です。

cmockaを使い始めるには、LWN.netの記事を読む必要があります:Cでのモックオブジェクトによるユニットテスト

cmocka 1.0は2015年2月にリリースされました。


3
cmockeryとcmockaを見ると、ドキュメントは似ています。これらのプロジェクトは関連していますか?
Matt Friedman

6
cmockaはcmockeryの後継です。メンテナンスされていないため、フォークしました。
14

21

関数をモックする方法を探し始める前は、レガシーCアプリケーションのテストはあまりしていませんでした。テストしたいCファイルを他の人から分離するためにモックが必要でした。cmockを試してみましたが、採用すると思います。

Cmockはヘッダーファイルをスキャンし、見つかったプロトタイプに基づいてモック関数を生成します。モックを使用すると、完全に分離してCファイルをテストできます。あなたがしなければならないのは、実際のオブジェクトファイルの代わりにモックでテストファイルをリンクすることだけです。

cmockのもう1つの利点は、モックされた関数に渡されるパラメーターを検証し、モックが提供する戻り値を指定できることです。これは、関数内のさまざまな実行フローをテストするのに非常に役立ちます。

テストは、典型的なtestA()、testB()関数で構成され、期待値を作成し、関数を呼び出してアサーションをテストおよびチェックします。

最後のステップは、Unityでテスト用のランナーを生成することです。CmockはUnityテストフレームワークに関連付けられています。Unityは他の単体テストフレームワークと同じくらい簡単に習得できます。

試してみる価値があり、把握するのは非常に簡単です。

http://sourceforge.net/apps/trac/cmock/wiki

アップデート1

私が調査しているもう1つのフレームワークはCmockeryです。

http://code.google.com/p/cmockery/

単体テストとモッキングをサポートする純粋なCフレームワークです。(Cmockとは異なり)rubyに依存せず、外部libにほとんど依存しません。

コードの生成を行わないため、モックのセットアップにはもう少し手作業が必要です。プロトタイプはあまり変更されないため、既存のプロジェクトの多くの作業を表すものではありません。モックを取得したら、しばらく変更する必要はありません(これは私の場合です)。追加のタイピングにより、モックを完全に制御できます。気に入らないことがあれば、モックを変更するだけです。

特別なテストランナーは必要ありません。テストの配列を作成し、それをrun_tests関数に渡すだけで済みます。ここでも少し手作業が必要ですが、自己完結型の自律フレームワークのアイデアが気に入っています。

それに、私が知らなかった気の利いたCトリックがいくつか含まれています。

Cmockery全体を始めるには、モックについてもう少し理解する必要があります。例は、これを克服するのに役立ちます。シンプルなメカニズムで仕事ができるようです。


8
あなたは見てとるべきcmocka.org cmockeryための後継者です!
asn

cmockの良いチュートリアルを提案できますか?
melwin_jose 2015年

LWNの記事から始め、次にcmockaのサンプルディレクトリを確認してください。
2015年

16

Cの初心者として、Cでのテスト駆動開発と呼ばれるスライドは非常に役に立ちました。基本的には、外部標準に依存せずに標準をassert()一緒に使用し&&てメッセージを配信します。誰かがフルスタックテストフレームワークに慣れている場合、これはおそらく行いません:)


is_spare()関数のバグにとても悩まされました...しかしリンクに感謝します!TDDがすべてのバグを捕まえることはないと思います。
Jis Ben

これは、私がCで見た最も単純なTDDアプローチでありassert、追加のライブラリーやフレームワークなしで実行できます。初心者ならこれが出発点になると思います。
kabirbaidhya

16

私たちは書いたチート(上にホストされているGitHubのを簡単に使いやすさと可搬性のため)。

依存関係はなく、インストールや構成は必要ありません。ヘッダーファイルとテストケースのみが必要です。

#include <cheat.h>

CHEAT_TEST(mathematics_still_work,
    cheat_assert(2 + 2 == 4);
    cheat_assert_not(2 + 2 == 5);
)

テストはコンパイルされて実行可能ファイルになり、テストの実行と結果の報告を行います。

$ gcc -I . tests.c
$ ./a.out
..
---
2 successful of 2 run
SUCCESS

色も綺麗です。


かわいいコロコロに賛成票を投じる
Mawgはモニカを2015

12

CUnitがあります

そして、埋め込まれたユニットは、組み込みCシステムの単体テストフレームワークです。その設計は、JUnitやCUnitなどからコピーされた後、組み込みCシステムにいくらか適応されました。Embedded Unitはstd C libsを必要としません。すべてのオブジェクトはconst領域に割り当てられます。

また、Tessyは組み込みソフトウェアの単体テストを自動化します。


1
試してみembunitてがっかりしました。
Craig McQueen

1
たとえば、私が提出したバグレポートと、3年間処理されていない別のバグレポートを確認します。
Craig McQueen

12

私はフレームワークを使用せず、autotoolsの「チェック」ターゲットサポートのみを使用します。「メイン」を実装し、assert(s)を使用します。

私のテストディレクトリMakefile.am(s)は次のようになります。

check_PROGRAMS = test_oe_amqp

test_oe_amqp_SOURCES = test_oe_amqp.c
test_oe_amqp_LDADD = -L$(top_builddir)/components/common -loecommon
test_oe_amqp_CFLAGS = -I$(top_srcdir)/components/common -static

TESTS = test_oe_amqp

2
autotoolsは使用していません(ある時点で移動するのは良いことですが)。歴史的に、私はテスト目的でメインの方法を使用しましたが、それは悪い解決策ではありません。
ポールオズボーン

11

Michael Featherの著書「レガシーコードを効果的に使用する」には、C開発中のユニットテストに固有の多くのテクニックが紹介されています。

Cに固有の依存関係注入に関連するテクニックはありますが、他では見られません。



6

私は組み込みc / c ++環境(主にC ++)にCxxTestを使用しています。

テストランナーを構築するためのperl / pythonスクリプトがあるので、私はCxxTestを好みます。セットアップを行うための小さなスロープ(テストランナーを作成する必要がないためさらに小さくなります)の後、それは非常に使いやすくなっています(サンプルと役立つドキュメントが含まれています)。ほとんどの作業は、コードがアクセスする「ハードウェア」をセットアップして、ユニット/モジュールのテストを効果的に行えるようにすることでした。その後、新しい単体テストケースを簡単に追加できます。

前述のとおり、これはC / C ++ユニットテストフレームワークです。したがって、C ++コンパイラが必要になります。

CxxTestユーザーガイド CxxTest Wiki


必要なコンパイラはc ++でも、テストしているコードはCでもかまいません。CxxTestは非常に使いやすいフレームワークです
David Sykes


5

Minunitを読んだ後、私はより良い方法は、防御的なプログラム手法のように使用するアサートマクロでテストをベースにすることだと思いました。だから私は標準のアサートと混合したMinunitの同じアイデアを使用しました。私のフレームワーク(良い名前はNoMinunitかもしれません)をk0gaのブログ見ることができます


私は今私のプロジェクトであなたのutest.hを使用しています。正常に動作し、十分に役立ちます。ありがとう!
ヨハン



4

Googleには優れたテストフレームワークがあります。https://github.com/google/googletest/blob/master/googletest/docs/primer.md

そして、はい、私が見る限り、それはプレーンCで動作します。つまり、C ++機能は必要ありません(C ++コンパイラが必要な場合がありますが、不明です)。


googleのフレームワークは純粋なCで動作しますか?ページをざっと見ると、それがC ++フレームワークであることがわかります。
Dana、

4
Google Testは優れていますが、非常にC ++フレームワークです。これはかなり移植性が高く、必要に応じてCのテストに使用できます。
ジョシュケリー


3

まず、こちらをご覧ください:http : //en.wikipedia.org/wiki/List_of_unit_testing_frameworks#C

私の会社には、お客様が使用するCライブラリがあります。コードのテストには、CxxTest(C ++ユニットテストライブラリ)を使用します。CppUnitも機能します。Cで立ち往生している場合は、RCUNITをお勧めします(ただしCUnitも良いです)。


2

JUnitに慣れている場合は、CppUnitをお勧めします。 http://cppunit.sourceforge.net/cppunit-wiki

これは、単体テストを実行するためのC ++コンパイラがあることを前提としています。そうでなければ、私はチェックがあなたが望むものであるというアダム・ローゼンフィールドに同意しなければなりません。


6
問題は、C ++ではなくCに関するものです
1800情報

3
いいえ。ただし、C ++はCライブラリにインターフェースできます。したがって、C ++単体テストフレームワークを使用してCライブラリをテストすることは、実際には完全に問題ないかもしれません。(私の会社はまさにそれをやっていて、Cユニットテストフレームワークを使用するよりもはるかに簡単です。)
Kevin

私も同じことをします。Cで記述されたユーティリティライブラリがあり、C ++コードとスクリプト言語の下で使用します。テストにはCppUnitを使用しますが、CとC ++の両方に同じフレームワークを使用できるため、問題なく機能しています。
Jyaan

2

ターゲット上でテストする前に、RCUNITを使用してPC上の埋め込みコードのユニットテストを行いました。優れたハードウェアインターフェイスの抽象化は重要です。それ以外の場合、エンディアンとメモリマップレジスタがあなたを殺します。



2

API Sanity Checker — C / C ++ライブラリのテストフレームワーク:

共有C / C ++ライブラリの基本的な単体テストの自動生成プログラム。ヘッダーの宣言を分析することで、パラメーターの妥当な(ほとんどの場合、残念ながらすべてではない)入力データを生成し、APIのすべての関数の単純な(「健全性」または「浅い」品質)テストケースを構成できます。ファイル。

生成されたテストの品質により、簡単な使用例で重大なエラーがないことを確認できます。このツールは、生成されたテストをビルドして実行し、クラッシュ(segfaults)、アボート、発生したすべての種類の信号、ゼロ以外のプログラムの戻りコード、プログラムのハングを検出できます。

例:


1

使用する1つの手法は、C ++ xUnitフレームワーク(およびC ++コンパイラ)を使用して単体テストコードを開発する一方で、ターゲットシステムのソースをCモジュールとして維持することです。

可能であればユニットテストを使用して、クロスコンパイラーでCソースを定期的にコンパイルするようにしてください。


1

LibU(http://koanlogic.com/libu)には、明示的なテストスイート/ケースの依存関係、テストの分離、並列実行、およびカスタマイズ可能なレポートフォーマッター(デフォルトの形式はxmlおよびtxt)を可能にする単体テストモジュールがあります。

ライブラリはBSDライセンスであり、他の多くの便利なモジュールが含まれています-ネットワーク、デバッグ、一般的に使用されるデータ構造、構成など-プロジェクトで必要な場合...




0

まだテストフレームワークを探しているのであれば、CUnitWin32はWin32 / NTプラットフォーム用です。

これは、他のテストフレームワークで直面した1つの基本的な問題を解決します。つまり、各テストは個別のプロセスとして実行されるため、グローバル/静的変数は確定的な状態にあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.