Hi Vadim,
Boost.Test, in combination with CMake, works pretty well. Moreover, it
integrates smoothly with many CI (continuous integration) frameworks such
as Jenkins/Hudson and Travis-CI.
You can browse through a full example with the following project:
http://github.com/airsim/stdair/. By default, (Boost.Test-based) test
checking is activated; it may be de-activated thanks to the
'-DENABLE_TEST:BOOL=OFF'
option passed to the CMake command-line. (In order for you to see how the
dependency on Boost.Test is handled at the installation/deployment level)
an example of packaging such a component in Fedora/CentOS/RedHat is given
by the RPM specification file:
http://pkgs.fedoraproject.org/cgit/stdair.git/tree/stdair.spec.
Hope that helps.
Kind regards
Denis
2013/3/23 Vadim Zeitlin <[email protected]>
> Hello,
>
> I've done my first modifications to the SOCI unit tests recently and it
> wasn't a very pleasant experience. The 2 main reasons for this are the
> rather unusual tests organization and the use of assert() instead of some
> more advanced mechanism. I'm especially riled by the latter because
> assert() is just not good enough: it doesn't show you which test failed, it
> doesn't show you the values of the variables with which it failed and it
> doesn't allow you to continue running past the first failure.
>
> So I wonder what do you think about using some testing framework instead.
> Considering SOCI existing dependencies on Boost it could make sense to use
> Boost.Test (
> http://www.boost.org/doc/libs/1_53_0/libs/test/doc/html/index.html)
> but OTOH all the current dependencies are optional, while this one would be
> semi-required as it's really nice to be able to run tests even if you don't
> use Boost.
>
> Hence an alternative solution: CATCH. This means "C++ AutomatedTest Cases
> in Headers" and, as you can see at https://github.com/philsquared/Catch[1]
> it is just a single header and all you need to do to start using it is to
> just include it. It is also really nice in that it's enough to write
>
> CHECK( ul == 4000000000ul );
>
> to see the value of "ul" if the test fails, i.e. you have just a single
> CHECK() which does everything, whereas with Boost.Test you need to use a
> specific macro:
>
> BOOST_CHECK_EQUAL( ul, 4000000000ul );
>
> Personally I think this is a great idea but I admit that I haven't used
> CATCH in really big test suites so I don't know what effect all the
> meta-programming machinery necessary to make the above work has on the
> compile times. Still, I believe CATCH would be a good fit for SOCI, so what
> do you think about starting to use it?
>
> And if not, using Boost.Test would still be much better than relying on
> bad old assert()...
>
> Finally, this is definitely not 3.2-critical but it would be nice to have
> an agreement about this before the tests need to be modified the next time.
>
> Regards,
> VZ
>
> [1] If you want to see the project activity, look at "integration" branch,
> not the default "master".
>
>
> ------------------------------------------------------------------------------
> Everyone hates slow websites. So do we.
> Make your web apps faster with AppDynamics
> Download AppDynamics Lite for free today:
> http://p.sf.net/sfu/appdyn_d2d_mar
> _______________________________________________
> soci-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/soci-users
>
>
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
soci-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/soci-users