@@ -33,30 +33,45 @@ jobs:
3333 with :
3434 dotnet-version : ${{ matrix.dotnet-version }}
3535
36+ # --- ТЕСТЫ (двойной логгер + кладём TRX в текущую папку) ---
3637 - name : Run ADO.NET Tests
3738 working-directory : ./src/Ydb.Sdk/test/Ydb.Sdk.Ado.Tests
3839 run : |
3940 docker cp ydb-local:/ydb_certs/ca.pem ~/
4041 dotnet test \
4142 --logger "GitHubActions;report-warnings=false" \
42- --logger "trx;LogFileName=ado.trx"
43+ --logger "trx;LogFileName=ado.trx" \
44+ --results-directory "$PWD"
4345 continue-on-error : true
4446
4547 - name : Run ADO.NET Specification Tests
4648 working-directory : ./src/Ydb.Sdk/test/Ydb.Sdk.Ado.Specification.Tests
47- run : dotnet test --logger "GitHubActions;report-warnings=false" --logger "trx;LogFileName=spec.trx"
49+ run : |
50+ dotnet test \
51+ --logger "GitHubActions;report-warnings=false" \
52+ --logger "trx;LogFileName=spec.trx" \
53+ --results-directory "$PWD"
4854 continue-on-error : true
4955
5056 - name : Run ADO.NET Dapper Tests
5157 working-directory : ./src/Ydb.Sdk/test/Ydb.Sdk.Ado.Dapper.Tests
52- run : dotnet test --logger "GitHubActions;report-warnings=false" --logger "trx;LogFileName=dapper.trx"
58+ run : |
59+ dotnet test \
60+ --logger "GitHubActions;report-warnings=false" \
61+ --logger "trx;LogFileName=dapper.trx" \
62+ --results-directory "$PWD"
5363 continue-on-error : true
5464
5565 - name : Run Topic Tests
5666 working-directory : ./src/Ydb.Sdk/test/Ydb.Sdk.Topic.Tests
57- run : dotnet test --logger "GitHubActions;report-warnings=false" --logger "trx;LogFileName=topic.trx"
67+ run : |
68+ dotnet test \
69+ --logger "GitHubActions;report-warnings=false" \
70+ --logger "trx;LogFileName=topic.trx" \
71+ --results-directory "$PWD"
5872 continue-on-error : true
5973
74+ # --- Сводная таблица по всем suite'ам ---
6075 - name : Publish combined test summary table
6176 if : always()
6277 run : |
@@ -67,13 +82,26 @@ jobs:
6782 local name="$1"; local path="$2"
6883 if [ -f "$path" ]; then
6984 local counters
70- counters=$(grep '<Counters ' "$path" | head -1 || true)
85+ counters=$(grep '<Counters' "$path" | head -1 || true)
7186 local passed failed skipped total duration
7287 passed=$(echo "$counters" | sed -n 's/.*passed="\([0-9]*\)".*/\1/p'); [ -z "$passed" ] && passed=0
7388 failed=$(echo "$counters" | sed -n 's/.*failed="\([0-9]*\)".*/\1/p'); [ -z "$failed" ] && failed=0
7489 skipped=$(echo "$counters" | sed -n 's/.*skipped="\([0-9]*\)".*/\1/p'); [ -z "$skipped" ] && skipped=0
7590 total=$(echo "$counters" | sed -n 's/.*total="\([0-9]*\)".*/\1/p'); [ -z "$total" ] && total=0
76- duration=$(grep -oP 'duration="\K[0-9\.]+' "$path" | head -1); [ -z "$duration" ] && duration='-'
91+
92+ # duration может отсутствовать в TRX — тогда оставим '-'
93+ duration=$(grep -oP 'duration="\K[0-9\.]+' "$path" | head -1 || true)
94+ if [ -z "$duration" ]; then
95+ start=$(grep -oP '<Times[^>]*start="\K[^"]+' "$path" | head -1 || true)
96+ finish=$(grep -oP '<Times[^>]*finish="\K[^"]+' "$path" | head -1 || true)
97+ if [ -n "$start" ] && [ -n "$finish" ]; then
98+ ds=$(date -d "$start" +%s 2>/dev/null || date -u -d "$start" +%s 2>/dev/null || echo "")
99+ df=$(date -d "$finish" +%s 2>/dev/null || date -u -d "$finish" +%s 2>/dev/null || echo "")
100+ if [ -n "$ds" ] && [ -n "$df" ]; then duration=$((df-ds)); fi
101+ fi
102+ fi
103+ [ -z "$duration" ] && duration='-'
104+
77105 echo "| $name | $passed | $failed | $skipped | $total | ${duration}s |" >> $GITHUB_STEP_SUMMARY
78106 else
79107 echo "| $name | 0 | 0 | 0 | 0 | - |" >> $GITHUB_STEP_SUMMARY
@@ -138,4 +166,4 @@ jobs:
138166 dotnet add package Microsoft.EntityFrameworkCore.Design
139167 dotnet ef migrations add InitialCreate
140168 dotnet ef database update
141- dotnet run
169+ dotnet run
0 commit comments