1[/ 2 / Copyright (c) 2003 Boost.Test contributors 3 / 4 / Distributed under the Boost Software License, Version 1.0. (See accompanying 5 / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 /] 7 8[section:section_faq Frequently Asked Questions] 9 10[h3 Where the latest version of the Boost Test Library is located?] 11The latest version of Boost Test Library is available online at [@http://www.boost.org/libs/test]. 12 13[h3 I found a bug. Where can I report it?] 14You can send a bug report to the boost users' mailing list and/or fill a ticket here [@https://svn.boost.org/trac/boost/]. 15 16 17[h3 I have a request for a new feature. Where can I ask for it?] 18You can send a request to the boost developers' mailing list and/or and/or fill a ticket here [@https://svn.boost.org/trac/boost/]. 19 20 21[h3 How to create test case using the Unit Test Framework?] 22To create a test case, use the macro 23 24 __BOOST_AUTO_TEST_CASE__( test_function ); 25 26For more details see the Unit Test Framework __BOOST_AUTO_TEST_CASE__ documentation. 27 28[h3 How to create test suite using the Unit Test Framework?] 29To create a test suite use the macro 30 31 __BOOST_AUTO_TEST_SUITE__( suite_name ); 32 33For more details see the Unit Test Framework __BOOST_AUTO_TEST_SUITE__ documentation. 34 35 36[h3 Why did I get a linker error when compiling my test program?] 37 38Boost Test Library components provide several usage variants: to create a test program you can 39link with the one of the precompiled library variants or use header-only variant. For example, to use Unit Test 40Framework you may either include 41 42`` 43 #include <boost/test/unit_test.hpp> 44`` 45and link with ``libunit_test_framework.lib`` or you can include 46 47`` 48 #include <boost/test/included/unit_test.hpp> 49`` 50 51in which case you should not need to link with any pre-compiled component. Note also that 52you should strictly follow specification on initialization function in other case some compilers may produce linker 53error like this. 54 55`` 56 Unresolved external init_unit_test_suite(int, char**). 57`` 58 59 60The reason for this error is that in your implementation you should specify second argument of 61`init_unit_test_suite` exactly as in the specification, i.e.: `char* []`. 62 63[h3 How can I redirect testing output?] 64Use ``unit_test_log::instance().set_log_output( std::ostream & )`` 65For more details see the __UTF__ __output_test_stream_tool__ documentation. 66 67[h3 I want different default log trace level] 68Use environment variable __BOOST_TEST_LOG_LEVEL__ to define desired log trace level. You still will be able to reset 69this value from the command line. For the list of acceptable values see the __UTF__ 70__runtime_configuration__ documentation. 71 72[h3 Is there DLL version of Boost.Test components available on Win32 platform?] 73Yes. Starting with Boost 1.34.0. 74 75 76[h3 How to set up a CMake project using __UTF__ (extended)] 77 78Suppose, you are building a test module from one translation unit `test_file.cpp`. First, let's do it using the [link boost_test.usage_variants.single_header header-only usage variant] of the __UTF__. 79 80Let's paste the following content in a `CMakeLists.txt` 81at the same location than our test file `test_file.cpp`: 82 83[pre 84cmake_minimum_required(VERSION 2.8.7) 85project(my_first_test) 86enable_testing() 87 88# indicates the location of the boost installation tree. 89# hard-coded for our simple example. 90set(BOOST_INCLUDE_DIRS $boost_installation_prefix/include) 91 92# creates the executable 93add_executable(test_executable test_file.cpp) 94# indicates the include paths 95target_include_directories(test_executable PRIVATE ${BOOST_INCLUDE_DIRS}) 96 97# declares a test with our executable 98add_test(NAME test1 COMMAND test_executable) 99] 100 101We will now create the build directory for this project (separate directory), 102configure and build the project, as follow: 103``` 104> cd ``$``test_path 105> mkdir build /*< we create a directory dedicated to the build, to avoid 106 any pollution of the sources with the temporary 107 build files >*/ 108> cd build 109> cmake .. /*< configuration of the project >*/ 110> cmake --build . /*< this command builds the project, cmake drives a native 111 tool that is configured on the previous command line >*/ 112> ctest /*< runs the tests declared in the project and prints a report >*/ 113``` 114 115In the case you are using the [link boost_test.usage_variants.shared_lib shared libraries] variant of __UTF__, 116some modifications should be done in your CMakeLists.txt. 117 118[pre 119cmake_minimum_required(VERSION 2.8.11) 120project(my_first_test) 121enable_testing() 122 123# replace XX with the version you have 124set(Boost_ADDITIONAL_VERSIONS "1.XX" "1.XX.0") 125 126# finds boost, triggers an error otherwise 127find_package(Boost XX REQUIRED COMPONENTS unit_test_framework) 128 129# creates the executable 130add_executable(test_executable test_file.cpp) 131# indicates the include paths 132target_include_directories(test_executable PRIVATE ${Boost_INCLUDE_DIRS}) 133# indicates the shared library variant 134target_compile_definitions(test_executable PRIVATE "BOOST_TEST_DYN_LINK=1") 135# indicates the link paths 136target_link_libraries(test_executable ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}) 137 138# declares a test with our executable 139add_test(NAME test1 COMMAND test_executable) 140 141] 142 143We will now create the build directory for this project (separate directory), configure and build the project, 144as follow: 145``` 146> cd ``$``test_path 147> mkdir build /*< we create a directory dedicated to the build, to avoid any pollution of the sources with the temporary 148 build files >*/ 149> cd build 150> cmake -DBOOST_ROOT=``$``boost_installation_prefix .. /*< configuration of the project, the `BOOST_ROOT` configuration element indicates the 151 Boost module of `cmake` where to find our installation >*/ 152> cmake --build . /*< this command builds the project, cmake drives a native tool that is configured on the 153 previous command line >*/ 154> ctest /*< runs the tests declared in the project and prints a report >*/ 155``` 156 157 158 159[endsect] [/faq]