Hi everyone,
Started poking on parser tests lately and found myself riddled after a while. It seems like when running parser test files with phpunit.php they follow different rules as when running them with parserTests.php.
If I observed this correctly, phpunit.php collects all articles to be created with "!!article", creates them, and then it runs tests. With parserTests.php on the other hand everything is executed in the order it is defined. In some tests it can be important whether a article already exists or not. There might be other behavioral differences here as well. The whole thing seems incredibly odd to me since there is also some redundant code and the initial globals set up in ParserTest::setupGlobals() are slightly different from globals set up in NewParserTest::setupGlobals(). If there is no good reason against this, both classes, ParserTest and NewParserTest should be reduced to one, or at least one base class/interface. The goal should be that when running phpunit.php parser tests behave exactly like running parserTests.php
Already created a bug report for this as well, it just didn't get any attention so far, so I try it here: https://bugzilla.wikimedia.org/show_bug.cgi?id=39473
I would very much appreciate if anyone could explain to me why there are both of these files and why we maintain (more or less) a whole bunch of redundant code for those tests.
Cheers, Daniel