Testing entire programs. best practics

I am currently developing a library and a set of programs using this library in python. Unit testing dictates that I import each module from the library and check the classes and routines inside. No problem with that. I have a separate test directory containing all my tests and importing the library modules that I run during development.

However, when it comes to software testing, things change. For testing, programs must be run as a whole. Programs suggest finding the installed library (which may be so, although it is not true if I installed the previous version on my machine, adding additional problems). At the moment, my programs are running testuite with the definition of PYTHONPATH, which I execute manually before deployment (IOW, I do not complete the installation), but I do not think that I am doing it right. I feel that in general, a program should be tested for functionality when it is fully deployed, but that will mean that I have to install it every time I want to perform functional testing.

What are your experiences and suggestions regarding functional testing of entire programs? do you do this before or after deployment and how?

thanks

Please note that I am not using the python tag specifically. Although my problem is specific to python, and I would prefer answers to questions related to python, I think that input can also be made by experts in other languages.


Edit : as reported in the comment, the fact is that during installation my program should import modules whose path can only be found during deployment (I download and install the dependencies on the fly, they are not installed on my machine). I cannot manipulate sys.path from the test, because this will mean that I am changing the sys.path of the program (my executable file) from another program (testuite, which starts and calls the system () call).

, , , - PYTHONPATH, , , , , make script (, , , "" ).

"OSX bundle", .

Edit

150 , , .

Edit

. , LudoMC V- , . .

+3
6

V- , , /, .

, , , , . , .

, , () UML, ( ) ( , ). , , . ( ) .

, ( , ), , .

, , 100% , PYTHONPATH , . , , , . (Personnaly, , , :-))

, ,

+4

, () , .

, , / . , .

, , . , , .

, , , .

+4

, , . - , , ... . , , . , ( , ), !).

, - , . , , , , , : , .

+4

virtualenv . --no-site-packages, , PYTHONPATH . , , , virtualenv , .

btw, virtualenv ./setup.py develop.

( ...)

+3

, .

. , , , , " " " .

. -, URI, HTTP- , , . , , , , . , , (, TCL C/++ Rhino Java) -.

+2

, , , , , , .

, , - - , , , , -/ REST .

, , , , , , .

I found NUnit and junit useful for testing in this way, but for functional tests, in the end, in most cases I resort to simple testing the script manually. I tend to be able to run all the tests for the application using something like ant, to make sure that you can check as much as possible, then I would go home, since the full set of tests could take a long time.

+2
source

Source: https://habr.com/ru/post/1707182/


All Articles