|
We just committed a fairly large change set with several breaking changes.
The vast majority of users should not experience any breaks.
In the process of fixing issue #7788, we decided to improve the consistency of the internal runner infrastructure. We introduced some lightweight wrapper interfaces in v1.0 that were
intended to allow us to enumerate tests when we didn't have running code (namely, to support Resharper). Unfortunately, these interfaces weren't applied uniformly, and there were many places where reflection's MethodInfo was used where IMethodInfo would have
sufficed.
The most visible potential break is in FactAttribute. The public API CreateTestCommands was modified to take an IMethodInfo; as a result, the protected virtual method EnumerateTestCommands (which developers who derive from FactAttribute might choose to override)
is now also taking IMethodInfo. The IMethodInfo interface continues to offer the MethodInfo property to access the underlying MethodInfo, if you need access to it.
The other potentially visible break is that ITestClassCommand.ChooseNextTest now takes a ICollection<IMethodInfo> rather than ICollection<MethodInfo>. Developers who are writing their own test frameworks to be invoked through the RunWithAttribute
are the most likely users who would be affected by this change.
Additionally, the SDK XxxCommand and XxxResult objects have all been updated to pass along IMethodInfo instead of MethodInfo. Since we encourage runner authors to use the version resiliant API, this should have very minimal impact.
|