Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Is it possible to use python to unit test C++ code?

3,309 views
Skip to first unread message

sylc...@gmail.com

unread,
Dec 21, 2005, 4:33:07 AM12/21/05
to
Is it possible to use python to unit test C++ code? If yes, is there
any example available?

Thank you.

Alex Stapleton

unread,
Dec 21, 2005, 4:56:35 AM12/21/05
to sylc...@gmail.com, pytho...@python.org

> --
> http://mail.python.org/mailman/listinfo/python-list

You could use Python to unittest a Python module written in C++ I
suppose. I guess that would probably work. I suspect that you would
get better/more accurate/reliable results by writing your tests in C+
+ as well though.

keirr

unread,
Dec 21, 2005, 10:28:00 AM12/21/05
to
sylc...@gmail.com wrote:
> Is it possible to use python to unit test C++ code? If yes, is there
> any example available?
>

If I had to use python to test C++ code, I'd use the Boost python
library: http://www.boost.org/libs/python/doc/ to expose my C++
classes, and write the unittests in python after importing the wrapped
C++ code.
Note, you did ask if it was possible. Is it advisable? That's another
question.

All the best,

Keir.

sk...@pobox.com

unread,
Dec 21, 2005, 10:49:54 AM12/21/05
to sylc...@gmail.com, pytho...@python.org

sylcheung> Is it possible to use python to unit test C++ code? If yes,
sylcheung> is there any example available?

Yes, it's quite possible. Some people even do it. ;-) As for examples, take
a look at Python's own test suite. Much of the code it contains actually
tests modules written in C, which is near enough to C++ for our purposes.
For example, consider that the math module is a thin wrapper around bits of
standard C89 math functions. The test_math.py script then exercises that
code.

So, you'll have to wrap your C++ library to make it available in Python
(check out SWIG and/or Boost and/or Python's Extending and Embedding
documentation), then write test cases. For that, look at the unittest and
doctest modules that come with Python as well as the third-party py.test
package.

Skip

sk...@pobox.com

unread,
Dec 22, 2005, 10:41:55 AM12/22/05
to samuel cheung, pytho...@python.org

samuel> Thanks. When I use python to unit test my c++ code. Do I need
samuel> only the .o file? or I need the .c/.h files of the c++ code? If
samuel> the input is .c/.h files, how can I compile it for unit testing
samuel> purposes?

Your wrapper module will need the header files from your C++ library and it
will by dynamically linked against the library's .so (or .dll).

Skip

Giles Brown

unread,
Dec 22, 2005, 3:01:39 PM12/22/05
to
I have used the Python version of this:

http://cxxtest.sourceforge.net/

unit testing framework successfully (but not heavily).

Hth,
Giles Brown

0 new messages