Usuario:Luis.perez/sistemaspyaytozgz/testing

Instalar nose
Puedes usar pip o easy_install:

easy_install nose

o

pip install nose

O instalar desde el código fuente:

python setup.py install

= Doctests =


 * Documentación de código que además sirve como tests
 * Buena forma de obligar a mantener los docstrings actualizados
 * Tests junto al código, facilitan su mantenimiento

Ejecutamos los doctests de dos formas:


 * Con el módulo doctest:


 * Con nose:

= Unittest =

http://docs.python.org/2/library/unittest.html


 * Parte de la librería estandar
 * NUnit

Caracteristicas

 * Test cases: Clases que encapsulan un conjunto de tests. Extienden de unittest.TestCase
 * fixtures: métodos para preparar o destruir objetos que puedan necesitar todos los tests

Ejemplo

Ejecutando los tests
Se puede hacer añadiendo al código:

O bien por línea de comando:

$ python -m unittest seqtests.TestSequenceFunctions ... -- Ran 3 tests in 0.000s OK

Se puede usar el autodiscover:

Busca módulos de test que se llamen test*.py (se puede modificar este comportamiento)

Fixtures

 * setUp: Se invoca antes de la ejecución de cada test
 * tearDown: Se invoca después de la ejecución de cada test
 * setUpClass: Se invoca una única vez antes de la ejecución de los tests del TestCase


 * tearDownClass: Se invoca una única vez después de la ejecución de los tests del TestCase

Asserts

 * assertRaises

Nose
https://nose.readthedocs.org/en/latest/
 * Librería no estandar, pero muy usada en el mundo python
 * No hace falta que los tests extiendan de unittest.TestCase, pueden ser funciones
 * Soporta agrupaciones a nivel de paquete, módulo y clase, con sus correspondientes fixtures.

Ejemplo

Asserts

 * Soporta todos los asserts de unittest (recomiendan usar la forma assert_equals en lugar de assertEquals)
 * mas algunas funciones como:
 * nose.tools.ok_(expr, msg=None): asserTrue
 * nose.tools.eq_(a, b, msg=None): assertEquals
 * nose.tools.raises(*exceptions):
 * nose.tools.timed(limit): Tiempo máximo que tiene un test para pasar