Currently, we have many problems with unit tests, for example: if we create a contract, we must eliminate it after the unit test; otherwise, some tests may fail. If you want to test the consensus, you will have many problems, because there are some tests with 4 validators, and if you change these static variables, you will break these tests.
This is because Blockchain is static and is shared among all unit tests. We must isolate all unit tests, this could allow parallel execution.
Original idea comes from: https://github.com/neo-project/neo/issues/922#issuecomment-526072756 @eryeer
Definitely, tests should be totally independent. I thought that the tests were independent 馃槩
If we use DI (https://github.com/neo-project/neo/issues/1042) we can let the container handle the scopes for the tests, or even if we need to implement the scope on the DI container we will have a way to do it that works for all the cases we need and not just in one place.
Definitely, tests should be totally independent. I thought that the tests were independent cry
@lock9 we talked about that already, tests are not independent. When you merged this one: https://github.com/neo-project/neo/pull/936 from https://github.com/neo-project/neo/issues/922 it was actually partially solving a side-effect of these things. If you come back to that discussion you will see that it was indicated already by many people, some points that may help resolving this in a definitely manner.
It was affecting P2P, and now it's affecting Ledger module (https://github.com/neo-project/neo/pull/1038)
We need to find a way to properly isolate bigger components of Neo... it will help testing, but also making the platform safer.
I did some test with NUnit, it paralellizes the Unit test, and was faster!

This problem require the complete isolation of the UT.
But is easy to port
Most helpful comment
@lock9 we talked about that already, tests are not independent. When you merged this one: https://github.com/neo-project/neo/pull/936 from https://github.com/neo-project/neo/issues/922 it was actually partially solving a side-effect of these things. If you come back to that discussion you will see that it was indicated already by many people, some points that may help resolving this in a definitely manner.
It was affecting P2P, and now it's affecting Ledger module (https://github.com/neo-project/neo/pull/1038)
We need to find a way to properly isolate bigger components of Neo... it will help testing, but also making the platform safer.