1+ using ModularPipelines . Attributes ;
2+ using ModularPipelines . Conditions ;
3+ using ModularPipelines . Context ;
4+ using ModularPipelines . DotNet . Extensions ;
5+ using ModularPipelines . DotNet . Options ;
6+ using ModularPipelines . Models ;
7+ using ModularPipelines . Modules ;
8+ using Sourcy . DotNet ;
9+
10+ namespace Build . Modules ;
11+
12+ /// <summary>
13+ /// Test the add-in for each supported Revit configuration.
14+ /// </summary>
15+ [ SkipIf < IsCI > ]
16+ [ DependsOn < ResolveConfigurationsModule > ]
17+ [ DependsOn < CompileProjectsModule > ( Optional = true ) ]
18+ public sealed class TestProjectsModule : Module
19+ {
20+ protected override async Task ExecuteModuleAsync ( IModuleContext context , CancellationToken cancellationToken )
21+ {
22+ var configurationsResult = await context . GetModule < ResolveConfigurationsModule > ( ) ;
23+ var configurations = configurationsResult . ValueOrDefault ! ;
24+
25+ foreach ( var configuration in configurations )
26+ {
27+ await context . SubModule ( configuration , async ( ) => await CompileAsync ( context , configuration , cancellationToken ) ) ;
28+ }
29+ }
30+
31+ /// <summary>
32+ /// Test the add-in project for the specified configuration.
33+ /// </summary>
34+ private static async Task < CommandResult > CompileAsync ( IPipelineContext context , string configuration , CancellationToken cancellationToken )
35+ {
36+ return await context . DotNet ( ) . Test ( new DotNetTestOptions
37+ {
38+ Configuration = configuration ,
39+ Arguments =
40+ [
41+ "--solution" , Solutions . Nice3point_Revit_Extensions . FullName
42+ ]
43+ } , cancellationToken : cancellationToken ) ;
44+ }
45+ }
0 commit comments