Help us understand the problem. What is going on with this article?

特定のユニットテスト TEST_METHOD を無効にする方法(MSVC++)

More than 3 years have passed since last update.

MSVC++のネイティブ単体テストプロジェクトの話です。

TEST_METHOD 前に属性を追加する

BEGIN_TEST_METHOD_ATTRIBUTETEST_IGNOREマクロを使用します。

BEGIN_TEST_METHOD_ATTRIBUTE(無効なテストケース)
    TEST_IGNORE()
END_TEST_METHOD_ATTRIBUTE()
TEST_METHOD(無効なテストケース)
{
    // テストケースの実装
}

これでこのテストケースは実行されません。

実行結果

ignore_unittest.png

ユースケースとして

ある特定条件下では必ず失敗してしまうケースを書いて、テストケース名に特定条件下の簡易な説明を入れておくと、このケースは書かなくて良い or 書いてはいけないを形式知として定義できる。

具体的な特定条件下

ネットワークドライブ上に配置したDLLをロードして、そのAPIをテストするケース。

DLLは内部でFileIOを使用していて、自DLLと同じ階層にファイルを作成する仕様があったとする。このときに、FileIOのファイルオープンが必ずFailする。(管理者権限が必要なディレクトリ階層でも同じことがおきる)

このとき、「ネットワークドライブ上のDLLをロードする」が特定条件となるので、TEST_IGNORE属性を付加しておくことで、同じ問題にぶつからないようにする効果がある(ことを期待している)。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away