rathga;16358 wrote:
I got a meaningful error for these projects in the regard you specify, and that is fine. But what I think is NOT expected behaviour is the fact that client test projects for these two library projects did not execute. I'm not sure there is a good reason for that? Whilst tests cannot be located in the projects themselves, they should still be built in .netstandard and used as a dependency in the normal way for other projects, and not block the running of tests in them. Unless I am missing something... ?
This happens due to the structural behaviour of the engine. The build and analysis steps for a project are considered to be a dependency of all other projects that depend on it. Technically, the analysis step does not need to be a dependency (as it isn't required for building a test environment for referencing projects). However, in terms of sensible operation, we do still need to perform all analysis steps successfully before we can properly prioritise tests in the queue. Sensible prioritisation is VERY important, especially when big tests are involved. We don't want the engine kicking off big test runs when the overall list of tests is still a big unknown. For this reason, a failure encountered during analysis is given the same level of status as a build error.
It's possible to improve the above. We could implement a range of hacks and implicit logic to try and allow the engine to still process the rest of the work around analysis failures, but it really isn't worth it. There is a serious error being reported that requires attention. To properly use the product without alarm bells going off, you need to fix the error. Allowing the product to work around the error gives very little value when a decision about the netstandard project needs to be made anyway.