@@ -70,6 +70,10 @@ set(SOLUTION_FILE "${CMAKE_SOURCE_DIR}/OpenLanguage.sln")
7070set (PROJECT_DIR "${CMAKE_SOURCE_DIR} /OpenLanguage" )
7171set (GENERATED_DIR "${PROJECT_DIR} /Generated" )
7272set (TEST_PROJECT_DIR "${CMAKE_SOURCE_DIR} /OpenLanguage.Test" )
73+ set (TEST_RESULTS_DIR "${TEST_PROJECT_DIR} /TestResults" )
74+ set (TEST_RESULTS_TRX_BASENAME "TestResults.trx" )
75+ set (TEST_RESULTS_TRX "${TEST_RESULTS_DIR} /${TEST_RESULTS_TRX_BASENAME} " )
76+ set (TEST_RESULTS_XML "${TEST_RESULTS_DIR} /TestResults.xml" )
7377
7478file (GLOB_RECURSE PROJECT_LIST "${PROJECT_DIR} /*.csproj" )
7579
@@ -174,12 +178,40 @@ add_custom_target(tool_restore
174178 COMMENT "Restoring dotnet tools"
175179)
176180
181+ add_custom_target (create_test_results_directory
182+ COMMAND ${CMAKE_COMMAND} -E make_directory ${TEST_RESULTS_DIR}
183+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
184+ COMMENT "Creating TestResults directory"
185+ )
177186
187+ add_custom_target (run_tests
188+ COMMAND dotnet test "${TEST_PROJECT_DIR} /OpenLanguage.Test.csproj"
189+ --results-directory= "${TEST_RESULTS_DIR} "
190+ --configuration= "Release"
191+ --framework= "net9.0"
192+ --logger= "trx\; LogFileName=\" ${TEST_RESULTS_TRX} \" "
193+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR} "
194+ DEPENDS build create_test_results_directory
195+ COMMENT "Running unit tests. Outputting results to \" ${TEST_RESULTS_TRX} \" "
196+ )
197+
198+ add_custom_target (convert_test_results
199+ COMMAND dotnet tool run trx2junit "${TEST_RESULTS_TRX} " --output "${TEST_RESULTS_DIR} "
200+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
201+ DEPENDS run_tests tool_restore
202+ COMMENT "Converting test results from TRX to JUnit XML format. Outputting results to \" ${TEST_RESULTS_XML} \" "
203+ )
178204
179205# Test target - dependent on build
206+ add_custom_target (test -ci
207+ DEPENDS convert_test_results
208+ )
209+
180210add_custom_target (test
181- COMMAND dotnet test --configuration Release
182- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
211+ COMMAND dotnet test "${TEST_PROJECT_DIR} /OpenLanguage.Test.csproj"
212+ --configuration= "Release"
213+ --framework= "net9.0"
214+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR} "
183215 DEPENDS build
184216 COMMENT "Running unit tests"
185217)
0 commit comments