We've added the test cases in the same file as the code. This is a good, simple way to add test cases to standalone scripts and applications that are not too complex. However, for larger applications, it is a good idea to keep test code separate from production code.
There are two common patterns for organizing test code this way.
The first pattern is to keep test code in a separate root directory, as shown in the following:
root | +- package | | | +- file1 | +- file2 | +- test | +- test_file1 +- test_file2
The other pattern is to keep test code as a submodule of the main code, as shown in the following:
root | +- package | +- file1 +- file2 +- test | +- test_file1 +- test_file2
The first pattern is commonly used for standalone ...