Skip to content

Conversation

@thomhurst
Copy link
Owner

Summary

  • Moves After(TestDiscovery) hooks to run after dependency resolution but before ITestRegisteredEventReceiver and ITestDiscoveryEventReceiver are invoked
  • Reorders ITestDiscoveryEventReceiver to fire before ITestRegisteredEventReceiver for semantic clarity
  • Adds the missing ExecuteAfterTestDiscoveryHooksAsync call to DiscoverTestsFullyStreamingAsync

This allows After(TestDiscovery) hooks to set up state that event receivers can use during the registration phase.

New execution order:

  1. Before(TestDiscovery) hooks
  2. Test discovery & building
  3. Dependency resolution
  4. After(TestDiscovery) hooks (discovery phase complete)
  5. ITestDiscoveryEventReceiver.OnTestDiscovered()
  6. ITestRegisteredEventReceiver.OnTestRegistered() (registration phase)

Test plan

  • Verified DependenciesAvailableInEventReceiverTests pass
  • Verified TransitiveDependenciesInEventReceiverTests pass
  • Verified CrossClassDependenciesInEventReceiverTests pass
  • Build succeeds with no errors

This changes the execution order so that After(TestDiscovery) hooks run
after dependencies are resolved but before ITestRegisteredEventReceiver
and ITestDiscoveryEventReceiver are invoked. This allows hooks to set up
state that event receivers can use during registration.

Also reorders ITestDiscoveryEventReceiver to fire before
ITestRegisteredEventReceiver for semantic clarity - discovery events
should fire before registration events.

New execution order:
1. Before(TestDiscovery) hooks
2. Test discovery & building
3. Dependency resolution
4. After(TestDiscovery) hooks (discovery phase complete)
5. ITestDiscoveryEventReceiver.OnTestDiscovered()
6. ITestRegisteredEventReceiver.OnTestRegistered() (registration phase)
@thomhurst thomhurst enabled auto-merge (squash) January 29, 2026 13:17
@thomhurst thomhurst merged commit b5d464b into main Jan 29, 2026
12 of 14 checks passed
@thomhurst thomhurst deleted the reorder-discovery-hooks-and-event-receivers branch January 29, 2026 13:36
This was referenced Jan 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants