2017-11-06 21 views
-2

Catchフレームワークを使用してユニットテストプロジェクトを作成しようとしていますが、リンクエラーが発生しています。 Visual C++でCatch2を使用する

  • は、以下のことを書くSTDAFX.Hする
  • #include <catch.hpp>を追加
  • には、ディレクトリへのキャッチを追加ネイティブユニットテストプロジェクトを作成します

    1. :次のように私はプロジェクトを設定している

      簡単なソースファイル

    unittest.cpp:

    #include "stdafx.h" 
    namespace Catch2_Test 
    { 
        TEST_CASE("Y U no work") 
        { 
        REQUIRE(1); 
        } 
    } 
    
  • +0

    いくつかの点:1.は、キャッチチュートリアルをお読みください。それは物事を設定する方法を示しています。マクロを定義して '#include 'にする必要があるところです(私は 'CATCH_CONFIG_MAIN'だと思います)。このファイルは、プリコンパイル済みヘッダーを使用しないでください。 2.これにネイティブユニットテストプロジェクトを使用しないでください。これらのプロジェクトは、Visual Studioのユニットテストライブラリ – Justin

    +0

    @Justinと一緒に使用するように設計されています。私はCatchチュートリアル自体をVC++に統合する方法を追っていたので、テストエクスプローラをコンソールではなく使用できるようになりました。 –

    +1

    @AryaPourtabatabaie AFAIK、これは現時点ではできません。 [それはVisual Studioチームのためのレーダーである](https://blogs.msdn.microsoft.com/vcblog/2017/05/10/unit-testing-and-the-future-announcing-the-test- adapter-for-google-test /)。 – Justin

    答えて

    1


    は、プリコンパイルされたヘッダ、
    にCatch2を使用するためのACCU物品Integrating the Catch Test Framework into Visual Studio, by Malcolm Noyes

    参照はhorenmarは、例を挙げたCatch2 issue 1061を指します。変更内容は要約バージョン2.1.0

    の一部としてリリースされている、与えられた解決策は以下のとおりです。

    // stdafx.h 
    #pragma once 
    
    #include "targetver.h" 
    
    #include <stdio.h> 
    #include <tchar.h> 
    
    #define CATCH_CONFIG_ALL_PARTS 
    #include "catch.hpp" 
    
    // PCH-test.cpp: 
    #include "stdafx.h" 
    
    #undef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED 
    #define CATCH_CONFIG_IMPL_ONLY 
    #define CATCH_CONFIG_MAIN 
    #include "catch.hpp" 
    
    // tests1.cpp: 
    #include "stdafx.h" 
    
    TEST_CASE("FooBarBaz") { 
        REQUIRE(1 == 2); 
    } 
    
    0

    問題はVSの統合はbranch off Catchに働いている間、私は、master branchからCatch2をクローン化されていたことでした。 Visual Studioの中にキャッチを統合するため

    +1

    ACCU ---- [Visual Studioへのキャッチテストフレームワークの統合、Malcolm Noyes著](https://accu.org/index.php/journals/1851)の記事では、[colonelsammy /キャッチフォーク](https://github.com/colonelsammy/Catch)。たぶん、Catch2にも同様の作業を適用することができます。 – caoanan

    関連する問題