Not yet relevant, but the ordering of the phases depends on how unittest discover does things. Ideally, we want the phase tests to be run in the order of dependency within the compiler (ex. scanner -> parser -> semantic analysis -> etc.). In this way, if the compiler under test has a bug in an earlier phase we don't test a later phase first (and mislead the user that the error occurred in the later phase).