You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
dotnet test --no-build 2>&1| grep -v "^ at "| grep -v "^ at "| grep -v "^ ---"| grep -v "^ from K:"| sed 's/TUnit.Engine.Exceptions.TestFailedException: //'| sed 's/AssertFailedException: //'
380
+
dotnet test --no-build 2>&1| grep -v "^ at "| grep -v "^ at "| grep -v "^ ---"| grep -v "^ from K:"| sed 's/AssertFailedException: //'
373
381
374
-
#Detailed output (shows passed tests too)
375
-
dotnet test --no-build -- --output Detailed
382
+
#Verbose output (shows passed tests too)
383
+
dotnet test --no-build -v normal
376
384
```
377
385
378
386
## Test Categories
@@ -383,36 +391,38 @@ Tests use typed category attributes defined in `TestCategory.cs`. Adding new bug
383
391
|----------|-----------|---------|-------------|
384
392
|`OpenBugs`|`[OpenBugs]`| Known-failing bug reproductions. Remove when fixed. |**EXCLUDED** via filter |
This filter excludes all tests with `[OpenBugs]` attribute from CI runs. Tests pass locally when the bug is fixed — then remove the `[OpenBugs]` attribute.
409
+
This filter excludes all tests with `[OpenBugs]` or `[HighMemory]` attributes from CI runs. Tests pass locally when the bug is fixed — then remove the `[OpenBugs]` attribute.
401
410
402
411
### Usage
403
412
404
413
```csharp
405
414
// Class-level (all tests in class)
415
+
[TestClass]
406
416
[OpenBugs]
407
417
public class BroadcastBugTests { ... }
408
418
409
419
// Method-level
410
-
[Test]
420
+
[TestMethod]
411
421
[OpenBugs]
412
-
public async Task BroadcastWriteCorruptsData() { ... }
422
+
public void BroadcastWriteCorruptsData() { ... }
413
423
414
424
// Documenting behavioral differences (NOT excluded from CI)
415
-
[Test]
425
+
[TestMethod]
416
426
[Misaligned]
417
427
public void BroadcastSlice_MaterializesInNumSharp() { ... }
418
428
```
@@ -421,13 +431,16 @@ public void BroadcastSlice_MaterializesInNumSharp() { ... }
421
431
422
432
```bash
423
433
# Exclude OpenBugs (same as CI)
424
-
dotnet test -- --treenode-filter "/*/*/*/*[Category!=OpenBugs]"
434
+
dotnet test --filter "TestCategory!=OpenBugs"
425
435
426
436
# Run ONLY OpenBugs tests (to verify fixes)
427
-
dotnet test -- --treenode-filter "/*/*/*/*[Category=OpenBugs]"
437
+
dotnet test --filter "TestCategory=OpenBugs"
428
438
429
439
# Run ONLY Misaligned tests
430
-
dotnet test -- --treenode-filter "/*/*/*/*[Category=Misaligned]"
440
+
dotnet test --filter "TestCategory=Misaligned"
441
+
442
+
# Combine multiple exclusions
443
+
dotnet test --filter "TestCategory!=OpenBugs&TestCategory!=HighMemory&TestCategory!=WindowsOnly"
A: TUnit framework in `test/NumSharp.UnitTest/`. Many tests adapted from NumPy's own test suite. Decent coverage but gaps in edge cases. Uses source-generated test discovery (no special flags needed).
615
+
A: MSTest v3 framework in `test/NumSharp.UnitTest/`. Many tests adapted from NumPy's own test suite. Decent coverage but gaps in edge cases. Uses source-generated test discovery (no special flags needed).
A: Library multi-targets `net8.0` and `net10.0`. Tests also multi-target both frameworks.
606
619
607
620
**Q: What are the main dependencies?**
608
621
A: No external runtime dependencies. `System.Memory` and `System.Runtime.CompilerServices.Unsafe` (previously NuGet packages) are built into the .NET 8+ runtime.
0 commit comments