title: Helping getting started using Boost.Test
body: <p>I am trying to start unit testing. I am looking at a few C++ frameworks and want to try Boost.Test. The documentation seems very thorough, and it's a bit overwhelming, especially someone new to unit testing. So here's a situation that I want:</p>
  
  <p>Let's say I have 2 classes, <code>Foo</code> and <code>Bar</code>. I want to write a suite of tests for <code>Foo</code> and a suite of tests for <code>Bar</code>, preferably in different files. I want to run the tests only if I run the program with a command line parameter. So my <code>main()</code> should look something like:</p>
  
  <pre><code>int main(int argc, const char* argv[])
  {
      if (argc == 1 &amp;&amp; strcmp(argv[0], "-test") == 0)
          run_all_tests();
      else
          return program_main(argc, argv);
  }
  </code></pre>
  
  <p>I think <code>test_foo.cpp</code> should be something like:</p>
  
  <pre><code>#include "foo.hpp"
  #define BOOST_TEST_MODULE Foo test
  #include &lt;boost/test/unit_test.hpp&gt;
  
  BOOST_AUTO_TEST_SUITE( Foo_Test )
  
  BOOST_AUTO_TEST_CASE( Foo1 )
  {
      Foo f;
      BOOST_CHECK( f.isValid() );
  }
  
  BOOST_AUTO_TEST_CASE( Foo2 )
  {
      Foo f;
      BOOST_CHECK( f.baz() == 5 );
  }
  
  BOOST_AUTO_TEST_SUITE_END()
  </code></pre>
  
  <p>However, I don't know (1) what the actual command to run the tests is, and (2) how to actually tell the library that I want to run EVERY test.</p>
  
  <p>So, who has experience with Boost.Test? Can someone help in a detailed way? Thank you so much.</p>