The problem with tests being implicitly disabled because of missing dependencies, is that people probably won't notice. That's especially true if only a small portion of the tests doesn't run. Furthermore, running some, but not all, of the tests gives a false sense of correctness, regardless of whether it is done on purpose or not.
I think it makes sense for tests to be considered a subproject with its own additional dependencies, that either gets built or not as a whole. I prefer being explicit about this, since tests are such an important/core subproject for us. That is, assume that we always want to build the tests, unless being told otherwise explicitly.
The problem with tests being implicitly disabled because of missing dependencies, is that people probably won't notice. That's especially true if only a small portion of the tests doesn't run. Furthermore, running some, but not all, of the tests gives a false sense of correctness, regardless of whether it is done on purpose or not.
I think it makes sense for tests to be considered a subproject with its own additional dependencies, that either gets built or not as a whole. I prefer being explicit about this, since tests are such an important/core subproject for us. That is, assume that we always want to build the tests, unless being told otherwise explicitly.