Core tests should be run without any extensions.
Ideally, core tests should include as many extension tests as possible
to prevent core from silently breaking extensions.
That's why we write tests for extensions. You could very easily
write two extensions that produce conflicting output--core should
not break because of this.
I think we have three different things going on here.
* Unit tests for extensions to prevent core changes from breaking extensions
* Unit tests for core (with extensions enabled) to prevent core changes from
breaking extensions.
* Unit tests for core (with extensions enabled) to prevent conflicting
extensions from breaking the core.