2016-08-26 9 views
1

OS X El CapitanでCTestとBoost 1.61.0を使用して最近作成されたプロジェクトでこのエラーが発生します。Boost.TestとCTestでパラメータcolor_outputに引数が指定されていません

ですcore/tests/CMakeLists.txtにある私のテストのCMakeLists.txt、:

find_package(Boost 1.32 REQUIRED COMPONENTS unit_test_framework) 
include_directories(${Boost_INCLUDE_DIRS}) 
add_executable(EntryTest entry.spec.cpp) 
target_link_libraries(EntryTest core ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}) 
add_test(EntryTest EntryTest) 

そして、実際のダミーテスト、core/tests/entry.spec.cppにあります:

#define BOOST_TEST_MAIN 
#include <boost/test/included/unit_test.hpp> 

BOOST_AUTO_TEST_SUITE (EntryTest) 

BOOST_AUTO_TEST_CASE(ShouldPass) { 
    BOOST_CHECK_EQUAL(1, 1); 
} 

BOOST_AUTO_TEST_SUITE_END() 

CTESTレポート:私は「

$ cat Testing/Temporary/LastTest.log 
Start testing: Aug 26 13:05 BOT 
---------------------------------------------------------- 
1/1 Testing: EntryTest 
1/1 Test: EntryTest 
Command: "/Users/jviotti/Projects/timetrack/build/core/tests/EntryTest" 
Directory: /Users/jviotti/Projects/timetrack/build/core/tests 
"EntryTest" start time: Aug 26 13:05 BOT 
Output: 
---------------------------------------------------------- 
Test setup error: boost::runtime::access_to_missing_argument: There is no argument provided for parameter color_output 
<end of output> 
Test time = 0.01 sec 
---------------------------------------------------------- 
Test Failed. 
"EntryTest" end time: Aug 26 13:05 BOT 
"EntryTest" time elapsed: 00:00:00 
---------------------------------------------------------- 

End testing: Aug 26 13:05 BOT 

うまく調整しようとしましたcolor_output wi (see this documentation page)の--color_outputオプションとBOOST_TEST_COLOR_OUTPUT環境変数の両方を使用してください。そのようなオプションの値を渡しても、エラーは継続します。

好奇心旺盛なことは、私は手動でおそらくCMakeの構成の問題を示し、テストファイルをコンパイルした場合、テストはうまく動作することです:私は間違って何をやっている

$ clang++ -L/usr/local/Cellar/boost/1.61.0_1/lib -I/usr/local/Cellar/boost/1.61.0_1/include core/tests/entry.spec.cpp 
$ ./a.out 
Running 1 test case... 

*** No errors detected 

を?

+0

'VERBOSE = 1'でビルドしましたか?たぶんこれが違いを特定するのに役立つかもしれません。 – usr1234567

+0

ここに冗長なmake出力があります:http://pastebin.com/em0Gidbe。面白い何かを止めることができないようです。 – jviotti

答えて

3

私は同様に、ユニットテストフレームワークの動的リンク変異体を使用して、missing_argument問題を解決することができた:代わりに使用する単一のヘッダ変異体の

#define BOOST_TEST_MODULE my_unit_tests 
#define BOOST_TEST_DYN_LINK 
#include <boost/test/unit_test.hpp> 

#define BOOST_TEST_MAIN 
#include <boost/test/included/unit_test.hpp> 

残りのコードとCMakeスクリプトはまったく同じです。

+0

私のために働いた、ありがとう! – jviotti

関連する問題