Testing

SonarAnalyzer.CSharp

Themerr-jellyfin uses SonarAnalyzers.CSharp to spot Bugs, Vulnerabilities, and Code Smells in the project. This is run automatically as part of the build process.

The config file for SonarAnalyzers.CSharp is .editorconfig.

StyleCop.Analyzers

Themerr-jellyfin uses StyleCop.Analyzers to enforce consistent code styling. This is run automatically as part of the build process.

The config file for StyleCop.Analyzers is .editorconfig.

Sphinx

Themerr-jellyfin uses Sphinx for documentation building. Sphinx, along with other required python dependencies are included in the docs dependency group in pyproject.toml. Python dependencies are managed with uv and locked in uv.lock.

Install the documentation dependencies with:

uv sync --only-group docs --no-install-project

The config file for Sphinx is docs/source/conf.py. This is already included in the root of the repo and should not be modified.

Test with Sphinx
cd docs
uv run --no-sync make html

Alternatively

cd docs
uv run --no-sync sphinx-build -b html source build
Lint with rstcheck
uv run --no-sync rstcheck -r .

Unit Testing

Themerr-jellyfin uses xUnit for unit testing.

Test with xUnit
dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=opencover --logger "console;verbosity=detailed"