From b9d4d6285df288e86d363703ed0e62713fc7a7c8 Mon Sep 17 00:00:00 2001 From: raczu Date: Thu, 14 Mar 2024 20:37:53 +0100 Subject: [PATCH] ci: add workflow to unit tests code on each commit --- .github/workflows/unit-tests.yml | 44 +++++++++++++++++++++ Server/ReasnAPI/ReasnAPI.Tests/UnitTest1.cs | 21 ++-------- 2 files changed, 47 insertions(+), 18 deletions(-) create mode 100644 .github/workflows/unit-tests.yml diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml new file mode 100644 index 00000000..0137efbc --- /dev/null +++ b/.github/workflows/unit-tests.yml @@ -0,0 +1,44 @@ +name: unit tests + +on: [push] + +jobs: + tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Determine ReasnAPI solution + run: echo SOLUTION_FILE=$(realpath ./Server/ReasnAPI/ReasnAPI.sln) >> $GITHUB_ENV + + - name: Setup dotnet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '8.0.x' + + - name: Install coverlet + run: dotnet tool install -g coverlet.console + + - name: Install dependencies + run: dotnet restore ${{ env.SOLUTION_FILE }} + + - name: Build solution + run: dotnet build ${{ env.SOLUTION_FILE }} --no-restore + + - name: Test with dotnet + run: | + RESULTS_FILENAME=results-$(date +"%Y-%m-%d_%H_%M_%S") + dotnet test ${{ env.SOLUTION_FILE }} --logger "trx;logfilename=$RESULTS_FILENAME.trx" --logger "html;logfilename=$RESULTS_FILENAME.html" --no-build --results-directory "TestResults-${{ github.sha }}" + + - name: Run coverlet + run: | + TEST_ASSEMBLY=$(find ./Server/ReasnAPI/ReasnAPI.Tests/bin/ -name "ReasnAPI.Tests.dll") + coverlet "$TEST_ASSEMBLY" --target "dotnet" --targetargs "test ${{ env.SOLUTION_FILE }} --no-build" + + - name: Upload dotnet test results + uses: actions/upload-artifact@v4 + if: ${{ failure() }} + with: + name: dotnet-results-${{ github.sha }} + path: TestResults-${{ github.sha }} + retention-days: 14 + \ No newline at end of file diff --git a/Server/ReasnAPI/ReasnAPI.Tests/UnitTest1.cs b/Server/ReasnAPI/ReasnAPI.Tests/UnitTest1.cs index 02d56ce1..46dac6f2 100644 --- a/Server/ReasnAPI/ReasnAPI.Tests/UnitTest1.cs +++ b/Server/ReasnAPI/ReasnAPI.Tests/UnitTest1.cs @@ -1,27 +1,12 @@ namespace ReasnAPI.Tests { [TestClass] - public class UnitTest1 : PageTest + public class UnitTest1 { [TestMethod] - public async Task HomepageHasPlaywrightInTitleAndGetStartedLinkLinkingtoTheIntroPage() + public void TestAdd() { - await Page.GotoAsync("https://playwright.dev"); - - // Expect a title "to contain" a substring. - await Expect(Page).ToHaveTitleAsync(new Regex("Playwright")); - - // create a locator - var getStarted = Page.Locator("text=Get Started"); - - // Expect an attribute "to be strictly equal" to the value. - await Expect(getStarted).ToHaveAttributeAsync("href", "/docs/intro"); - - // Click the get started link. - await getStarted.ClickAsync(); - - // Expects the URL to contain intro. - await Expect(Page).ToHaveURLAsync(new Regex(".*intro")); + Assert.AreEqual(17, 17); } } }