test: stand up xUnit harness for QA gate (S1-f)
Standalone net9.0 xUnit project at tests/FieldLogger.Tests (no MAUI workload) so `dotnet test` runs fast in the QA gate. Smoke suite only for now; real app logic tests land once codec/sim are factored into a workload-free library. Trace: SRS §6 gate, NFR-8. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
28
tests/FieldLogger.Tests/FieldLogger.Tests.csproj
Normal file
28
tests/FieldLogger.Tests/FieldLogger.Tests.csproj
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
QA smoke/regression harness for the Field Logger app (S1-f, trace: SRS §6 gate / NFR-8).
|
||||||
|
|
||||||
|
Targets plain net9.0 (NOT the MAUI platform TFMs) so `dotnet test` runs on any dev/CI
|
||||||
|
machine without the MAUI workload, keeping the QA gate fast. It deliberately does NOT
|
||||||
|
reference FieldLogger.csproj yet, because that project pulls in MAUI/platform deps.
|
||||||
|
|
||||||
|
When app logic that needs testing (e.g. the S1-b IF-LOC codec / locator simulator) is
|
||||||
|
factored into a plain .NET class library, add a ProjectReference to it here and the
|
||||||
|
round-trip tests move in. Coordinated with app-owner.
|
||||||
|
-->
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net9.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<IsPackable>false</IsPackable>
|
||||||
|
<IsTestProject>true</IsTestProject>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
|
||||||
|
<PackageReference Include="xunit" Version="2.9.2" />
|
||||||
|
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
24
tests/FieldLogger.Tests/SmokeTests.cs
Normal file
24
tests/FieldLogger.Tests/SmokeTests.cs
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace FieldLogger.Tests;
|
||||||
|
|
||||||
|
// Smoke test for the QA gate (S1-f, trace: SRS §6 gate / NFR-8).
|
||||||
|
// Proves the .NET test toolchain (dotnet test + xUnit) is wired and green in the app repo.
|
||||||
|
// Substantive coverage (e.g. the S1-b IF-LOC codec round-trip) is added once the app's
|
||||||
|
// pure logic is factored into a workload-free library this project can reference.
|
||||||
|
public class SmokeTests
|
||||||
|
{
|
||||||
|
[Fact]
|
||||||
|
public void Harness_Runs()
|
||||||
|
{
|
||||||
|
Assert.True(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(1, 1, 2)]
|
||||||
|
[InlineData(2, 3, 5)]
|
||||||
|
public void Arithmetic_Sanity(int a, int b, int expected)
|
||||||
|
{
|
||||||
|
Assert.Equal(expected, a + b);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user