Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/odddotnet/sample-aspiretodoapp

Sample application showing how to write an ODD test suite using OddDotNet and .NET Aspire.
https://github.com/odddotnet/sample-aspiretodoapp

csharp observability odddotnet opentelemetry opentelemetry-dotnet

Last synced: about 1 month ago
JSON representation

Sample application showing how to write an ODD test suite using OddDotNet and .NET Aspire.

Awesome Lists containing this project

README

        

# Sample-AspireTodoApp
Sample application showing how to write an ODD test suite using OddDotNet and .NET Aspire.

## Inspiration
This sample project, along with OddDotNet/OddDotProto/OddDotCSharp, was inspired by a presentation given by
[Martin Thwaites](https://github.com/martinjt) at the NDC London 2023 conference. The presentation can be
found [here](https://youtu.be/prLRI3VEVq4), and the original code repository found
[here](https://github.com/martinjt/todo-odd/tree/main).

This sample shows how the OddDotNet OpenTelemetry test harness, along with the OddDotCSharp client and builder,
can be used to write integration and E2E automated tests using Observability Driven Development.

The OddDotNet OpenTelemetry test harness is a docker container that acts as an otel collector and provides
a gRPC service for querying spans that have been generated by your application(s). The container is found
[here](https://github.com/OddDotNet/OddDotNet/pkgs/container/odddotnet).

In addition, the OddDotCSharp repository provides a NuGet package called OddDotNet.Client, which provides
a pre-built gRPC client for communicating with the container, and a SpanQueryRequestBuilder for
simplifying the creation of queries against the spans your application has generated.

## Prerequisites
1. .NET Aspire. For setup instructions, see [Setup and tooling](https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/setup-tooling?tabs=linux&pivots=dotnet-cli).
2. Docker.

## Getting Started
1. Open the solution.
2. There is a single test `/tests/TodoTests/GetTodoShould/UseCacheOnSecondRequest()` that demonstrates the functionality.