To analyse the Java project with UTBotJava-action you need to follow these simple steps:
- Apply the UTBot gradle plugin to your project:
plugins { id "org.utbot.gradle.plugin" version "1.0.0-alpha" }
- Create a new file
<your-repository>/.github/workflows/run-utbot-java-action.ymlwith a workflow that can be run and configured manually:
name: "Run UTBotJava action" on: workflow_dispatch: inputs: pushTests: description: "Push generated tests to the repository" type: boolean default: true generatedTestsRelativeRoot: description: "Relative path to the root of the tests" type: string default: '.utbot/test' testFramework: type: choice options: - junit4 - junit5 - testng default: 'junit5' generationTimeout: description: "Time budget for one class (ms)" type: string default: '60000' codegenLanguage: type: choice options: - java - kotlin default: java mockStrategy: type: choice options: - 'no-mocks' - 'other-packages' - 'other-classes' default: 'other-packages' staticsMocking: type: choice options: - 'do-not-mock-statics' - 'mock-statics' default: 'mock-statics' jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Setup Java uses: actions/setup-java@v2 with: distribution: adopt java-version: 8 - name: Setup Gradle uses: gradle/gradle-build-action@v2 with: gradle-version: 6.8 - name: Run UTBotJava-action uses: UnitTestBot/UTBotJava-action@v1 with: pushTests: ${{ inputs.pushTests }} generatedTestsRelativeRoot: ${{ inputs.generatedTestsRelativeRoot }} testFramework: ${{ inputs.testFramework }} generationTimeout: ${{ inputs.generationTimeout }} codegenLanguage: ${{ inputs.codegenLanguage }} mockStrategy: ${{ inputs.mockStrategy }} staticsMocking: ${{ inputs.staticsMocking }}
- On the Actions tab find the section Run UTBotJava action:
- Click Run workflow and select the needed options:
- After the workflow is completed, look at the Security → Code Scanning Alerts to find the detected errors (by the way, you won`t find any if your code is fine 😉):
- Explore any alert by clicking on it:
As you see in this case above, UTBot detected an unchecked ArrayIndexOutOfBoundsException by passing the array [-192, -192] to the isSorted method.
Click Show paths button, and you see the execution trace.
📍 Note: All these steps are performed more clearly in this project, watch it above. 🙂



