2013-10-05 13 views
6

Quando si gioca con nose e si prova a combinarlo con cython Non riesco a far funzionare tutto nel modo che preferisco. Il codice è organizzato in questo modo:Organizzazione dei file di origine cython e dei relativi test (con nosetest)

. 
├── setup.py 
└── src 
    ├── calc 
    │   ├── factorial.py 
    │   ├── __init__.py 
    │   └── tests.py 
    └── cycalc 
     ├── tests.py 
     └── triangle.pyx 

Ciascuna tests.py contiene 2 prove, si riesce, uno non riesce. Il risultato dell'esecuzione di setup.py nosetests è che viene eseguito solo calc/tests.py. Se dopo questa esecuzione, eseguiamo nosetests3 src/cycalc, vengono eseguiti i due test in cycalc/tests.py. Tuttavia, se pulisco tutti i file di build non funziona perché cycalc/triangle.pyx non è stato incorporato in una libreria condivisa.

Poi ho provato ad aggiungere il file src/cycalc/__init__.py, ora setup.py nosetests picconi fino cycalc/tests.py ma non riesce a trovare il modulo richiesto, è stato messo in src.

Come organizzare la mia sorgente cython ei test per rendere setup.py nosetests trovare tutto ciò di cui ha bisogno?

risposta

1

Per nose per eseguire automaticamente i test, è necessario aggiungerli in una cartella denominata test contenente tutti i test. In questo modo:

. 
|-setup.py 
|-src 
|---calc 
|------factorial.py 
|------__init__.py 
|---cycalc 
|------triangle.pyx 
|------__init__.py 
|-tests 
|---__init__.py 
|---test_calc.py  
|---test_cycalc.py 

In questo modo entrambi i test verranno eseguiti automaticamente con tutto nello stesso percorso. Se rimuovi i file creati devi eseguire python setup.py build prima che i test funzionino di nuovo.

Problemi correlati