Files
AI-Studio/app/Tests/Tests.csproj
T

70 lines
3.4 KiB
XML

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<LangVersion>latest</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>AIStudio.Tests</RootNamespace>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="coverlet.collector" Version="10.1.0" />
<!--
Held at the version the two analyzer projects build against, so that a test compiling a
snippet uses the same Roslyn the analyzers themselves were written for. Raise all three
together, and never above the Roslyn of the oldest .NET SDK which may build AI Studio (5.0 for
10.0.1xx), even though the SDK in metadata.txt ships a newer one; SourceCodeRules explains why.
-->
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="5.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.11.0" />
<!--
NUnit 4.6 broke Assert.That for plain values under C# 13: with Assert.That(Action, ...) added,
even Assert.That(1, Is.EqualTo(1)) failed with "argument 1: cannot convert int to System.Action".
NUnit 5 with C# 14 picks the value overload again. Should that message come back after an update,
this is where it comes from.
-->
<PackageReference Include="NUnit" Version="5.0.0" />
<PackageReference Include="NUnit.Analyzers" Version="4.15.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="NUnit3TestAdapter" Version="6.3.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MindWork AI Studio\MindWork AI Studio.csproj" />
<!--
Referenced as libraries: the tests run the generator and the analyzers themselves, against
a snippet they compile in memory. SourceCodeRules is an analyzer of this project as well,
but only for MWAIS0018, see below: a test which expects the line break of the system fails
on Windows only, where no pipeline runs the tests. The other rules are written for the code
of the app and would judge test code which has its reasons, such as new Random() with a seed.
-->
<ProjectReference Include="..\SourceCodeRules\SourceCodeRules\SourceCodeRules.csproj" OutputItemType="Analyzer" />
<ProjectReference Include="..\SourceGeneratedMappings\SourceGeneratedMappings.csproj" />
</ItemGroup>
<!--
Every rule of SourceCodeRules except MWAIS0018, the line break of the system. A new rule judges
the tests, too, until it is listed here.
-->
<PropertyGroup>
<NoWarn>$(NoWarn);MWAIS0001;MWAIS0002;MWAIS0003;MWAIS0004;MWAIS0005;MWAIS0006;MWAIS0007;MWAIS0008;MWAIS0009;MWAIS0010;MWAIS0011;MWAIS0012;MWAIS0013;MWAIS0014;MWAIS0015;MWAIS0016;MWAIS0017</NoWarn>
</PropertyGroup>
<!--
Compiled here as well, so that the tests check the same options of the app which the trim smoke test finds.
-->
<ItemGroup>
<Compile Include="..\TrimSmokeTest\AppJsonOptions.cs" Link="Serialization\AppJsonOptions.cs" />
</ItemGroup>
<ItemGroup>
<Using Include="NUnit.Framework" />
</ItemGroup>
</Project>