Skip to content

Commit 1964c8c

Browse files
committed
Merge feature/0.4.0-init: release v0.4.0
2 parents f53527a + 4ad310f commit 1964c8c

337 files changed

Lines changed: 14384 additions & 31444 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.editorconfig

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
root = true
2+
3+
[*]
4+
indent_style = space
5+
indent_size = 4
6+
end_of_line = lf
7+
charset = utf-8
8+
trim_trailing_whitespace = true
9+
insert_final_newline = true
10+
11+
[*.{csproj,props,targets,xml,json,yml,yaml}]
12+
indent_size = 2
13+
14+
[*.md]
15+
trim_trailing_whitespace = false
16+
17+
[*.{cs,vb}]
18+
dotnet_sort_system_directives_first = true
19+
dotnet_style_qualification_for_field = false:suggestion
20+
dotnet_style_qualification_for_property = false:suggestion
21+
dotnet_style_qualification_for_method = false:suggestion
22+
dotnet_style_qualification_for_event = false:suggestion
23+
24+
# Use 'var' where appropriate
25+
csharp_style_var_for_built_in_types = true:suggestion
26+
csharp_style_var_when_type_is_apparent = true:suggestion
27+
csharp_style_var_elsewhere = true:suggestion
28+
29+
# Braces
30+
csharp_prefer_braces = true:suggestion
31+
32+
# Namespace declarations
33+
csharp_style_namespace_declarations = file_scoped:suggestion

.github/workflows/ci.yml

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,24 @@ jobs:
2424
- name: Build
2525
run: dotnet build --no-restore --configuration Release
2626

27-
- name: Run Unit Tests
27+
- name: Run Core Tests
2828
run: dotnet test tests/Prova.Core.Tests/Prova.Core.Tests.csproj --configuration Release --no-build
2929

30-
- name: Verify Console Runner (Prova.Demo)
31-
run: dotnet run --project samples/Prova.Demo --configuration Release --no-build -- --simple
32-
33-
- name: Verify MTP Runner (Prova.MtpSample)
34-
run: dotnet run --project samples/Prova.MtpSample --configuration Release --no-build -- --report-trx
30+
- name: Run Generator Tests
31+
run: dotnet test tests/Prova.Generators.Tests/Prova.Generators.Tests.csproj --configuration Release --no-build
32+
33+
- name: Verify Samples Build
34+
run: |
35+
dotnet build samples/Prova.AspNetCore.Sample --configuration Release --no-restore
36+
dotnet build samples/Prova.Playwright.Sample --configuration Release --no-restore
37+
dotnet build samples/Prova.Testcontainers.Sample --configuration Release --no-restore
38+
dotnet build samples/Prova.FsCheck.Sample --configuration Release --no-restore
39+
dotnet build samples/Prova.Demo --configuration Release --no-restore
40+
41+
- name: Verify NuGet Pack
42+
run: |
43+
dotnet pack src/Prova.Core/Prova.Core.csproj --configuration Release --no-build -o nupkgs
44+
dotnet pack src/Prova.AspNetCore/Prova.AspNetCore.csproj --configuration Release --no-build -o nupkgs
45+
dotnet pack src/Prova.Playwright/Prova.Playwright.csproj --configuration Release --no-build -o nupkgs
46+
dotnet pack src/Prova.Testcontainers/Prova.Testcontainers.csproj --configuration Release --no-build -o nupkgs
47+
dotnet pack src/Prova.FsCheck/Prova.FsCheck.csproj --configuration Release --no-build -o nupkgs

.github/workflows/deploy-docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
- uses: actions/checkout@v4
2525
- uses: actions/setup-node@v4
2626
with:
27-
node-version: 18
27+
node-version: 20
2828
- run: npm ci
2929
working-directory: docs
3030
- run: npm run docs:build

.github/workflows/publish.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,12 @@ jobs:
3535
echo "VERSION=$VERSION" >> $GITHUB_ENV
3636
3737
- name: Pack
38-
run: dotnet pack src/Prova.Core/Prova.Core.csproj --configuration Release --no-build -o out /p:Version=${{ env.VERSION }}
38+
run: |
39+
dotnet pack src/Prova.Core/Prova.Core.csproj --configuration Release --no-build -o out /p:Version=${{ env.VERSION }}
40+
dotnet pack src/Prova.AspNetCore/Prova.AspNetCore.csproj --configuration Release --no-build -o out /p:Version=${{ env.VERSION }}
41+
dotnet pack src/Prova.Playwright/Prova.Playwright.csproj --configuration Release --no-build -o out /p:Version=${{ env.VERSION }}
42+
dotnet pack src/Prova.Testcontainers/Prova.Testcontainers.csproj --configuration Release --no-build -o out /p:Version=${{ env.VERSION }}
43+
dotnet pack src/Prova.FsCheck/Prova.FsCheck.csproj --configuration Release --no-build -o out /p:Version=${{ env.VERSION }}
3944
4045
- name: Push to NuGet
41-
run: dotnet nuget push out/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json
46+
run: dotnet nuget push "out/*.nupkg" --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate

.gitignore

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
1-
## Ignore Visual Studio temporary files, build results, and
2-
## files generated by popular Visual Studio add-ons.
1+
## .NET / Visual Studio
32

43
# User-specific files
54
*.rsuser
65
*.suo
76
*.user
87
*.userosscache
98
*.sln.docstates
10-
11-
# User-specific files (MonoDevelop/Xamarin Studio)
129
*.userprefs
1310

1411
# Build results
@@ -32,19 +29,31 @@ bld/
3229
project.lock.json
3330
project.fragment.lock.json
3431
artifacts/
32+
33+
# NuGet
3534
nupkgs/
35+
out/
36+
37+
# Test Results
38+
TestResults/
39+
*.binlog
3640

37-
# Visual Studio Code
41+
# IDEs
3842
.vscode/
43+
.vs/
44+
.idea/
3945

40-
# MacOS
46+
# macOS
4147
.DS_Store
4248

43-
# Brain Artifacts
49+
# Docs
50+
docs/node_modules
51+
docs/.vitepress/cache
52+
docs/.vitepress/dist
53+
54+
# Project-specific
4455
brain/
4556
warnings.txt
46-
nupkgs/
4757
build_output.txt
4858
tests/Prova.PackageTest/
49-
50-
docs/node_modules
59+
tests/Prova.Analyzers.Tests/TestResults

CHANGELOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,33 @@
11
# Changelog
22

3+
## [v0.4.0] - The Integrations Update 🔌
4+
5+
**Released:** 2026-02-20
6+
7+
This release adds first-class integration packages, global lifecycle hooks, and a VitePress documentation site.
8+
9+
### ✨ New Features
10+
- **FsCheck Integration**: New `Prova.FsCheck` package with `[Property]` attribute for property-based testing.
11+
- **Global Lifecycle Hooks**: Added `[BeforeEvery]` and `[AfterEvery]` attributes for cross-cutting concerns.
12+
- **Documentation Site**: Full VitePress documentation deployed to [prova.digvijay.dev](https://prova.digvijay.dev).
13+
- **Migration Analyzers**: Added code fixers for MSTest (`[TestMethod]`, `[DataRow]`, `[TestInitialize]`, etc.).
14+
15+
### 🛠️ Improvements
16+
- **.NET 10 Compatibility**: Fixed `dotnet test` MTP compatibility on .NET 10 SDK.
17+
- **Zero-Warning Build**: Resolved all RS1032/RS1033 analyzer warnings for clean CI.
18+
- **NuGet Packaging**: All integration packages (`Prova.AspNetCore`, `Prova.Playwright`, `Prova.Testcontainers`, `Prova.FsCheck`) are now independently packable with proper metadata.
19+
20+
### 📦 New Packages
21+
| Package | Description |
22+
|---------|-------------|
23+
| `Prova` | Core framework |
24+
| `Prova.AspNetCore` | ASP.NET Core integration |
25+
| `Prova.Playwright` | Playwright browser testing |
26+
| `Prova.Testcontainers` | Docker container testing |
27+
| `Prova.FsCheck` | Property-based testing |
28+
29+
---
30+
331
## [v0.3.0] - The Governance Update 🛡️
432

533
**Released:** 2026-01-28

CONTRIBUTING.md

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,56 @@
11
# Contributing to Prova
22

33
> [!NOTE]
4-
> Prova is an **Experimental Research Project** and community-driven initiative. It is a standalone reference implementation for Native AOT testing and is not an official Microsoft product.
4+
> Prova is an **open-source, community-driven** testing framework for .NET. Contributions of all sizes are welcome!
55
66
## Getting Started
77

88
1. **Fork and Clone**: Fork the repo and clone it locally.
9-
2. **Environment**: You need `dotnet sdk 8.0` or higher.
9+
2. **Environment**: You need the [.NET 10 SDK](https://dotnet.microsoft.com/download).
1010
3. **Build**:
1111
```bash
1212
dotnet build
1313
```
1414
4. **Run Tests**:
1515
```bash
16-
dotnet run --project tests/Prova.Core.Tests/Prova.Core.Tests.csproj
16+
dotnet test tests/Prova.Core.Tests
17+
dotnet test tests/Prova.Generators.Tests
1718
```
1819

1920
## Development Workflow
2021

2122
- **Branching**: Create a feature branch for your changes (e.g., `feature/awesome-new-assert`).
2223
- **Committing**: Keep commits atomic and descriptive.
23-
- **Testing**: **ALWAYS** add a test case in `Prova.Core.Tests` for your new feature.
24+
- **Testing**: **ALWAYS** add a test case in `Prova.Core.Tests` or `Prova.Generators.Tests` for your new feature.
2425

2526
## Project Structure
2627

27-
- `src/Prova.Core`: The runtime library (Attributes, Assert, Reporters).
28-
- `src/Prova.Generators`: The magic 🧙‍♂️. Roslyn Source Generators that build the runner.
29-
- `tests/Prova.Core.Tests`: The test suite (yes, Prova tests itself!).
28+
| Directory | Purpose |
29+
|-----------|---------|
30+
| `src/Prova.Core` | The runtime library (Attributes, Assert, Reporters) |
31+
| `src/Prova.Generators` | Roslyn Source Generators that build the runner |
32+
| `src/Prova.Analyzers` | Migration analyzers and code fixers |
33+
| `src/Prova.AspNetCore` | ASP.NET Core integration package |
34+
| `src/Prova.Playwright` | Playwright browser testing package |
35+
| `src/Prova.Testcontainers` | Testcontainers integration package |
36+
| `src/Prova.FsCheck` | FsCheck property-based testing package |
37+
| `tests/` | Test suite (Prova tests itself!) |
38+
| `samples/` | Sample projects demonstrating features |
39+
| `docs/` | VitePress documentation site |
40+
41+
## Running the Documentation Site Locally
42+
43+
```bash
44+
cd docs
45+
npm install
46+
npm run docs:dev
47+
```
3048

3149
## Submitting a Pull Request
3250

3351
1. Push your branch to your fork.
34-
2. Open a Pull Request against `main`.
35-
3. Ensure CI passes.
52+
2. Open a Pull Request against `master`.
53+
3. Ensure CI passes (build + tests).
3654
4. Wait for review! We try to review PRs within 48 hours.
3755

3856
## Code of Conduct

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<Authors>Digvijay Chauhan</Authors>
44
<Company>Digvijay Chauhan</Company>
55
<Product>Prova</Product>
6-
<Version>0.3.0</Version>
6+
<Version>0.4.0</Version>
77
<Copyright>Copyright © 2026 Digvijay Chauhan</Copyright>
88
<PackageLicenseExpression>MIT</PackageLicenseExpression>
99
<RepositoryUrl>https://github.com/Digvijay/Prova</RepositoryUrl>

0 commit comments

Comments
 (0)