xUnitRevit looks and works great thank you for sharing that!
I was looking at the code and was wondering if you ever got it to work by loading the test assembly in a separate AppDomain? Thereby allowing the test assembly to be unloaded. This would make it possible to change the test code, rebuild the test assembly and start the new tests without restarting Revit.
I tried to create my own Revit test runner when I started using Speckle and Revit more than a year ago, but was not able to integrate existing test runners (like xunit/nunit) and load the test assembly into a separate AppDomain.
I gave up and ended up using a different approach: I created my own .Net Test Attributes and run methods marked with these attributes using reflection. I also used Assembly.Load(byte assembly) to not lock the test assembly. My test tool has limited functionality and works with quirks (for loading SqlLites’ x86/x64 assemblies) so I would rather be using xUnitRevit.