openapi-generator
openapi-generator copied to clipboard
[BUG] [Spring] Generated test classes are marked as sources instead of test
Bug Report Checklist
- [x] Have you provided a full/minimal spec to reproduce the issue?
- [x] [N/A] Have you validated the input using an OpenAPI validator (example)?
- [x] Have you tested with the latest master to confirm the issue still exists?
- [x] Have you searched for related issues/PRs?
- [x] What's the actual output vs expected output?
- [ ] [Optional] Sponsorship to speed up the bug fix or feature request (example)
Description
When generating interfaces (invoker) for spring generator the generated test resources are marked as Sources instead of Test Sources. This will break the compilation if test resources are marked as test scope. Also see my response on this question: https://stackoverflow.com/questions/73450027/java-maven-openapi-3-0-codegen-is-generating-unwanted-test-file-how-to-remove
Workaround: run with <interfaceOnly>true</interfaceOnly> (avoid test generation).
openapi-generator version
6.2.0, 6.0.1
OpenAPI declaration file content or url
N/A - anything is sufficient
openapi: 3.0.3
info:
title: test
version: "1.0"
servers:
- url: http://localhost:8080/
description: Local
tags:
- name: Target
description: Targets related REST endpoints.
paths:
/target:
get:
tags:
- Target
summary: Retrieves all targets
description: Returns all targets
operationId: getTargets
responses:
'200':
description: successful operation
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>${openapi-generator.version}</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<id>generate-files-from-openapi</id>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/static/api.yaml</inputSpec>
<generatorName>spring</generatorName>
<library>spring-boot</library>
<configOptions>
<!-- <interfaceOnly>true</interfaceOnly>-->
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
Generation Details
spring
Steps to reproduce
Generate sources and check project strcture.
Related issues/PRs
Suggest a fix
Same issue. The workaround is not great because it does not generate the clients which are nice/required.
I am wondering:
testOutputseems correct and this file should be generated ingeneratedtest-sourcesinstead ofgenerated-source- As it's a test, why
generateApiTestshas no effect on this file generation? - Where is this F**** config that adds
src/test/javain the sources while default maven config consider this file as a test-source
Still in 6.4.0
@sebastianblesgen did you find any workarounds for this?
@sebastianblesgen did you find any workarounds for this?
The only thing I can do is to use the suggested workaround using interfaceOnly 🤷🏻♂️
I just now got rid of the file by adding it to the ignore list:
<ignoreFileOverride>${project.basedir}/.openapi-generator-ignore</ignoreFileOverride>
.openapi-generator-ignore content:
**/OpenApiGeneratorApplicationTests.java
Still present in v7.3.0 - but the workaround by @navaneeth-spotnana still works!
Still present in v7.3.0 - but the workaround by @navaneeth-spotnana still works!
Same in v7.5.0, testOutput configuration seems to be ignored.
Still broke