• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ThreeMammals / Ocelot / 26364467755
95%

Build:
DEFAULT BRANCH: develop
Ran 24 May 2026 03:40PM UTC
Jobs 1
Files 270
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

24 May 2026 02:53PM UTC coverage: 95.369% (+0.04%) from 95.327%
26364467755

push

github

web-flow
Migrate to Microsoft.Testing.Platform framework & xUnit v3 for acceptance testing (#2392)

* Intro CancelMe virtual property for all test classes
* Add more testing helpers into Ocelot.Testing package for next v25.0.0-beta.8
* Switch from xunit.v3 to xunit
* Migrate to TestStack.BDDfy.Xunit testing framework
* Move ThreadSafeHeadersTests
* Organize Security feature folder
* Fix and refactor SecurityOptionsTests for Security feat
* Disable Microsoft Testing Platform for acceptace testing project
* Delete global.json
* OutputType is DLL
* Don't use TestStack.BDDfy.Xunit since it provides minimal benefit. Thus, migrate to MTP and xUnit v3
* Replace BddfyFact attribute with Fact (xUnit)
* Finally migrate to Microsoft Testing Platform (MTP) for testing projects based on xUnit v3 framework
* Use transitive Microsoft.Testing.Platform pack
* Override CancelMe property
* Fix Should_not_enqueue_services_when_already_polling integration test
* Improve code coverage
* fix: add graceful thread cleanup in PollKubeTests to prevent foreground thread hangs

**Issue**: Unit tests exit with code 7 (forced termination) leaving foreground threads
running. The test process hangs for 10 seconds waiting for thread cleanup, then forces exit.

**Root Cause**: Tests initialize PollKube with PeriodicTimer without waiting for the
background StartAsync() task to initialize. When Dispose() is called, the timer's
WaitForNextTickAsync() operation may still be pending, leaving async tasks incomplete.

**Solution**: Implement proper async/await patterns:
1. Add Task.Delay() after GetAsync() to allow background polling to start
2. Ensure background tasks complete before test teardown
3. Pass CancellationToken through task chains
4. Ensure Dispose() can complete gracefully

**Tests Fixed**:
- OnTimerCallbackAsync_AvoidPolling_WhenAlreadyPolling: Added 10ms delay + wait for polling
- GetAsync_WhenDisposed_ReturnsEmpty: Added 5ms initialization delay
- StartAsync_WhenProviderDisposed_Catch... (continued)

6754 of 7082 relevant lines covered (95.37%)

2387.59 hits per line

Subprojects
ID Flag name Job ID Ran Files Coverage
1 /jobs/182250658 26364467755.1 24 May 2026 03:40PM UTC 270
95.37
GitHub Action Run
Source Files on build 26364467755
  • Tree
  • List 270
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26364467755
  • e324bba0 on github
  • Prev Build on develop (#26241073880)
  • Next Build on develop (#26593998263)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc