Skip to content

Commit 52ff8a9

Browse files
committed
Merge results from phases
1 parent 7adf30d commit 52ff8a9

1 file changed

Lines changed: 59 additions & 45 deletions

File tree

azure-pipelines.yml

Lines changed: 59 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,9 @@ jobs:
132132
sudo R -q -e "install.packages(c('devtools','metafor','fields','covr'), dependencies=TRUE, repos='https://cloud.r-project.org')"
133133
sudo R -q -e "install.packages(c('DSI','DSOpal','DSLite'), dependencies=TRUE, repos='https://cloud.r-project.org')"
134134
135+
# XML grep for coverage report merging
136+
sudo apt-get install -qq xml-twig-tools -y
137+
135138
displayName: 'Install all dependencies for dsBaseClient'
136139
condition: succeeded()
137140
@@ -157,8 +160,8 @@ jobs:
157160
echo "Run devtools::document() locally then commit again."
158161
exit 1
159162
else
160-
echo "Documentation up to date."
161-
exit 0
163+
echo "Documentation up to date."
164+
exit 0
162165
fi
163166
164167
workingDirectory: $(Pipeline.Workspace)/dsBaseClient
@@ -241,34 +244,32 @@ jobs:
241244
# testthat::testpackage uses a MultiReporter, comprised of a ProgressReporter and JunitReporter
242245
# R output and messages are redirected by sink() to test_console_output.txt
243246
# junit reporter output is to test_results.xml
247+
#
248+
# "_-|arg-|smk-|datachk-|disc-|math-|expt-|expt_smk-"
244249
sudo R -q -e '
245250
library(covr);
246-
write.csv(
247-
coverage_to_list(
248-
covr::package_coverage(
249-
type = c("none"),
250-
code = c(
251-
'"'"'library(testthat);
252-
output_file <- file("test_console_output.txt");
253-
sink(output_file);
254-
sink(output_file, type = "message");
255-
library(testthat);
256-
junit_rep <- JunitReporter$new(file = "test_results.xml");
257-
progress_rep <- ProgressReporter$new(max_failures = 999999);
258-
multi_rep <- MultiReporter$new(reporters = list(progress_rep, junit_rep));
259-
testthat::test_package("$(projectName)", filter = "_-|arg-|smk-|datachk-|disc-|math-|expt-|expt_smk-",reporter = multi_rep, stop_on_failure = FALSE)'"'"')
260-
)
261-
),
262-
"coveragelist.csv"
263-
)'
251+
dsbase.res <- covr::package_coverage(
252+
type = c("none"),
253+
code = c(
254+
'"'"'library(testthat);
255+
output_file <- file("test_console_output_dsbase.txt");
256+
sink(output_file);
257+
sink(output_file, type = "message");
258+
library(testthat);
259+
junit_rep <- JunitReporter$new(
260+
file = "test_results_dsbase.xml");
261+
progress_rep <- ProgressReporter$new(max_failures = 999999);
262+
multi_rep <- MultiReporter$new(reporters = list(progress_rep, junit_rep));
263+
testthat::test_package("$(projectName)", filter = "_-", reporter = multi_rep, stop_on_failure = FALSE)'"'"')
264+
)
265+
)
266+
)
267+
base::saveRDS(dsbase.res, "test_results_dsbase.rds")'
264268
265269
# display the test console output
266-
cat test_console_output.txt
267-
mv coveragelist.csv $(Pipeline.Workspace)/logs
268-
mv test_results.xml $(Pipeline.Workspace)/logs
269-
mv test_console_output.txt $(Pipeline.Workspace)/logs
270+
cat test_console_output_dsbase.txt
270271
271-
grep --quiet "Failed: 0" $(Pipeline.Workspace)/logs/test_console_output.txt
272+
grep --quiet "Failed: 0" test_console_output_dsbase.txt
272273
273274
workingDirectory: $(Pipeline.Workspace)/dsBaseClient
274275
displayName: 'Code coverage and JUnit report output, with dsBase'
@@ -320,32 +321,45 @@ jobs:
320321
# junit reporter output is to test_results.xml
321322
sudo R -q -e '
322323
library(covr);
324+
dsdanger.res <- covr::package_coverage(
325+
type = c("none"),
326+
code = c(
327+
'"'"'library(testthat);
328+
output_file <- file("test_console_output_dsdanger.txt");
329+
sink(output_file);
330+
sink(output_file, type = "message");
331+
library(testthat);
332+
junit_rep <- JunitReporter$new(file = "test_results_dsdanger.xml");
333+
progress_rep <- ProgressReporter$new(max_failures = 999999);
334+
multi_rep <- MultiReporter$new(reporters = list(progress_rep, junit_rep));
335+
testthat::test_package("$(projectName)", filter = "smk_dgr-",reporter = multi_rep, stop_on_failure = FALSE)'"'"')
336+
)
337+
)
338+
base::saveRDS(dsdanger.res, "test_results_dsdanger.rds")'
339+
340+
# Merge coverage results
341+
cat test_results_dsbase.txt test_results_dsdanger.txt > $(Pipeline.Workspace)/logs/test_console_output.txt
342+
xml_grep --pretty_print indented --wrap "testsuites" --descr "" --cond "testsuite" test_results_dsbase.xml test_results_dsdanger.xml > test_results.xml
343+
344+
# Create 'coveragelist.csv'
345+
sudo R -q -e '
346+
library(covr);
347+
dsbase.res <- base::readRDS("test_results_dsbase.rds")
348+
dsdanger.res <- base::readRDS("test_results_dsdanger.rds")
323349
write.csv(
324-
coverage_to_list(
325-
covr::package_coverage(
326-
type = c("none"),
327-
code = c(
328-
'"'"'library(testthat);
329-
output_file <- file("test_console_output.txt");
330-
sink(output_file);
331-
sink(output_file, type = "message");
332-
library(testthat);
333-
junit_rep <- JunitReporter$new(file = "test_results.xml");
334-
progress_rep <- ProgressReporter$new(max_failures = 999999);
335-
multi_rep <- MultiReporter$new(reporters = list(progress_rep, junit_rep));
336-
testthat::test_package("$(projectName)", filter = "_-|smk_dgr-",reporter = multi_rep, stop_on_failure = FALSE)'"'"')
337-
)
338-
),
339-
"coveragelist.csv"
340-
)'
350+
coverage_to_list(
351+
c(dsbase.res, dsdanger.res)
352+
"coveragelist.csv"
353+
)
354+
)'
341355
342356
# display the test console output
343-
cat test_console_output.txt
357+
cat test_console_output_dsdanger.txt
358+
344359
mv coveragelist.csv $(Pipeline.Workspace)/logs
345360
mv test_results.xml $(Pipeline.Workspace)/logs
346-
mv test_console_output.txt $(Pipeline.Workspace)/logs
347361
348-
grep --quiet "Failed: 0" $(Pipeline.Workspace)/logs/test_console_output.txt
362+
grep --quiet "Failed: 0" test_console_output_dsdanger.txt
349363
350364
workingDirectory: $(Pipeline.Workspace)/dsBaseClient
351365
displayName: 'Code coverage and JUnit report output, with dsBase and dsDanger'

0 commit comments

Comments
 (0)