diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml new file mode 100644 index 00000000..15eb0c57 --- /dev/null +++ b/.github/workflows/unit-tests.yml @@ -0,0 +1,38 @@ +# This is a basic workflow to run unit tests. + +name: Unit Tests + +# Controls when the action will run. Triggers the workflow on push or pull request +# events but only for the main branch. +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "unit-test" + unit-test: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # This grabs the WPILib docker container + container: wpilib/roborio-cross-ubuntu:2023-22.04 + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v3 + + # Declares the repository safe and not under dubious ownership. + - name: Add repository to git safe directories + run: git config --global --add safe.directory $GITHUB_WORKSPACE + + # Grant execute permission for gradlew + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + # Runs a single command using the runners shell + - name: Compile and run tests on robot code + run: ./gradlew test diff --git a/.vscode/settings.json b/.vscode/settings.json index 2f1b9b39..9263d533 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -26,5 +26,6 @@ }, ], "java.test.defaultConfig": "WPIlibUnitTests", - "java.compile.nullAnalysis.mode": "automatic" + "java.compile.nullAnalysis.mode": "automatic", + "wpilib.skipTests": true } diff --git a/.wpilib/wpilib_preferences.json b/.wpilib/wpilib_preferences.json index 6c78d01a..6534dffe 100644 --- a/.wpilib/wpilib_preferences.json +++ b/.wpilib/wpilib_preferences.json @@ -1,6 +1,6 @@ { "enableCppIntellisense": false, "currentLanguage": "java", - "projectYear": "2024beta", + "projectYear": "2024", "teamNumber": 8033 } \ No newline at end of file diff --git a/simgui.json b/simgui.json index b30b8d3b..af6d403f 100644 --- a/simgui.json +++ b/simgui.json @@ -29,6 +29,7 @@ }, "Clients": { "open": true - } + }, + "visible": true } } diff --git a/src/test/java/frc/InitTests.java b/src/test/java/frc/InitTests.java new file mode 100644 index 00000000..8ce3c54b --- /dev/null +++ b/src/test/java/frc/InitTests.java @@ -0,0 +1,28 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +package frc; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; + +import edu.wpi.first.hal.HAL; +import frc.robot.Robot; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +/** Test robot init. */ +public class InitTests { + @BeforeEach + private void setup() { + HAL.initialize(500, 0); + } + + @Test + protected void initializeRobotDoesntThrow() { + assertDoesNotThrow( + () -> { + new Robot().close(); + }); + } +}