Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: viclovsky/swagger-coverage
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 1.3.7
Choose a base ref
...
head repository: viclovsky/swagger-coverage
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Loading
Showing with 11,959 additions and 575 deletions.
  1. +10 −0 .github/dependabot.yml
  2. +20 −5 .github/workflows/build.yml
  3. +27 −0 .github/workflows/gradle-wrapper-validation.yml
  4. +12 −4 .github/workflows/release.yml
  5. +1 −0 .gitignore
  6. +29 −27 README.md
  7. +32 −18 build.gradle.kts
  8. +0 −19 gradle/github-publish.gradle
  9. +60 −0 gradle/maven-publish.gradle
  10. +0 −55 gradle/maven.gradle
  11. BIN gradle/wrapper/gradle-wrapper.jar
  12. +2 −1 gradle/wrapper/gradle-wrapper.properties
  13. +182 −110 gradlew
  14. +32 −24 gradlew.bat
  15. +4 −0 jitpack.yml
  16. +2 −2 run.sh
  17. +1 −0 settings.gradle.kts
  18. +13 −4 swagger-coverage-commandline/build.gradle.kts
  19. +7 −4 swagger-coverage-commandline/src/main/java/com/github/viclovsky/swagger/coverage/CommandLine.java
  20. +2 −2 ...-commandline/src/main/java/com/github/viclovsky/swagger/coverage/configuration/Configuration.java
  21. +9 −3 ...dline/src/main/java/com/github/viclovsky/swagger/coverage/configuration/ConfigurationBuilder.java
  22. +2 −11 ...c/main/java/com/github/viclovsky/swagger/coverage/configuration/options/ConfigurationOptions.java
  23. +9 −0 ...c/main/java/com/github/viclovsky/swagger/coverage/configuration/options/ResultsWriterOptions.java
  24. +33 −13 ...age-commandline/src/main/java/com/github/viclovsky/swagger/coverage/core/generator/Generator.java
  25. +3 −3 ...c/main/java/com/github/viclovsky/swagger/coverage/core/generator/OperationConditionGenerator.java
  26. +40 −30 ...main/java/com/github/viclovsky/swagger/coverage/core/generator/SwaggerSpecificationProcessor.java
  27. +2 −6 ...overage-commandline/src/main/java/com/github/viclovsky/swagger/coverage/core/model/Condition.java
  28. +1 −1 ...ne/src/main/java/com/github/viclovsky/swagger/coverage/core/model/ConditionOperationCoverage.java
  29. +4 −4 ...rage-commandline/src/main/java/com/github/viclovsky/swagger/coverage/core/model/OperationKey.java
  30. +1 −1 ...-commandline/src/main/java/com/github/viclovsky/swagger/coverage/core/model/OperationsHolder.java
  31. +3 −8 ...line/src/main/java/com/github/viclovsky/swagger/coverage/core/model/SinglePredicateCondition.java
  32. +2 −6 ...ndline/src/main/java/com/github/viclovsky/swagger/coverage/core/predicate/ConditionPredicate.java
  33. +8 −9 ...main/java/com/github/viclovsky/swagger/coverage/core/predicate/DefaultBodyConditionPredicate.java
  34. +9 −6 ...java/com/github/viclovsky/swagger/coverage/core/predicate/DefaultParameterConditionPredicate.java
  35. +11 −9 ...com/github/viclovsky/swagger/coverage/core/predicate/DefaultParameterValueConditionPredicate.java
  36. +55 −0 .../java/com/github/viclovsky/swagger/coverage/core/predicate/DefaultPropertyConditionPredicate.java
  37. +4 −4 ...in/java/com/github/viclovsky/swagger/coverage/core/predicate/DefaultStatusConditionPredicate.java
  38. +4 −4 .../main/java/com/github/viclovsky/swagger/coverage/core/predicate/FullStatusConditionPredicate.java
  39. +10 −8 ...github/viclovsky/swagger/coverage/core/predicate/NotOnlyParameterListValueConditionPredicate.java
  40. +19 −0 ...c/main/java/com/github/viclovsky/swagger/coverage/core/predicate/ParameterConditionPredicate.java
  41. +1 −1 ...ommandline/src/main/java/com/github/viclovsky/swagger/coverage/core/predicate/ParameterUtils.java
  42. +10 −8 ...n/java/com/github/viclovsky/swagger/coverage/core/predicate/ParameterValueConditionPredicate.java
  43. +59 −0 ...rc/main/java/com/github/viclovsky/swagger/coverage/core/predicate/PropertyConditionPredicate.java
  44. +65 −0 ...in/java/com/github/viclovsky/swagger/coverage/core/predicate/PropertyValueConditionPredicate.java
  45. +70 −0 .../com/github/viclovsky/swagger/coverage/core/predicate/PropertyValueNotOnlyConditionPredicate.java
  46. +2 −2 ...overage-commandline/src/main/java/com/github/viclovsky/swagger/coverage/core/results/Results.java
  47. +3 −3 .../main/java/com/github/viclovsky/swagger/coverage/core/results/builder/core/StatisticsBuilder.java
  48. +2 −3 ...m/github/viclovsky/swagger/coverage/core/results/builder/core/StatisticsOperationPostBuilder.java
  49. +2 −3 ...b/viclovsky/swagger/coverage/core/results/builder/postbuilder/ConfigurationStatisticsBuilder.java
  50. +3 −3 ...va/com/github/viclovsky/swagger/coverage/core/results/builder/postbuilder/SwaggerInfoBuilder.java
  51. +3 −3 .../com/github/viclovsky/swagger/coverage/core/results/builder/postbuilder/TagStatisticsBuilder.java
  52. +7 −8 .../github/viclovsky/swagger/coverage/core/results/builder/prebuilder/CoverageStatisticsBuilder.java
  53. +2 −2 ...ithub/viclovsky/swagger/coverage/core/results/builder/prebuilder/GenerationStatisticsBuilder.java
  54. +0 −1 ...ndline/src/main/java/com/github/viclovsky/swagger/coverage/core/results/data/CoverageCounter.java
  55. +1 −1 ...ommandline/src/main/java/com/github/viclovsky/swagger/coverage/core/results/data/TagCoverage.java
  56. +34 −0 ...mandline/src/main/java/com/github/viclovsky/swagger/coverage/core/rule/body/NotEmptyBodyRule.java
  57. +44 −0 ...ine/src/main/java/com/github/viclovsky/swagger/coverage/core/rule/body/PropertyConditionRule.java
  58. +32 −0 ...src/main/java/com/github/viclovsky/swagger/coverage/core/rule/body/PropertyEnumAllValuesRule.java
  59. +27 −0 ...line/src/main/java/com/github/viclovsky/swagger/coverage/core/rule/body/PropertyNotEmptyRule.java
  60. +32 −0 ...main/java/com/github/viclovsky/swagger/coverage/core/rule/body/PropertyNotOnlyEnumValuesRule.java
  61. +1 −3 ...commandline/src/main/java/com/github/viclovsky/swagger/coverage/core/rule/core/ConditionRule.java
  62. +2 −2 ...line/src/main/java/com/github/viclovsky/swagger/coverage/core/rule/parameter/EmptyHeaderRule.java
  63. +1 −1 ...ne/src/main/java/com/github/viclovsky/swagger/coverage/core/rule/parameter/EnumAllValuesRule.java
  64. +0 −32 ...ine/src/main/java/com/github/viclovsky/swagger/coverage/core/rule/parameter/NotEmptyBodyRule.java
  65. +1 −6 ...rc/main/java/com/github/viclovsky/swagger/coverage/core/rule/parameter/NotEmptyParameterRule.java
  66. +1 −2 ...rc/main/java/com/github/viclovsky/swagger/coverage/core/rule/parameter/NotOnlyEnumValuesRule.java
  67. +12 −9 ...c/main/java/com/github/viclovsky/swagger/coverage/core/rule/parameter/ParameterConditionRule.java
  68. +1 −1 ...ain/java/com/github/viclovsky/swagger/coverage/core/rule/status/OnlyDeclaredHTTPStatusesRule.java
  69. +1 −1 ...ine/src/main/java/com/github/viclovsky/swagger/coverage/core/rule/status/StatusConditionRule.java
  70. +5 −5 ...line/src/main/java/com/github/viclovsky/swagger/coverage/core/writer/FileSystemResultsWriter.java
  71. +26 −13 ...line/src/main/java/com/github/viclovsky/swagger/coverage/core/writer/HtmlReportResultsWriter.java
  72. +4 −3 ...commandline/src/main/java/com/github/viclovsky/swagger/coverage/core/writer/LogResultsWriter.java
  73. +4 −3 ...-coverage-commandline/src/main/java/com/github/viclovsky/swagger/coverage/option/MainOptions.java
  74. +0 −8 swagger-coverage-commandline/src/main/resources/log4j.properties
  75. +12 −0 swagger-coverage-commandline/src/main/resources/logback.xml
  76. +3 −2 swagger-coverage-commandline/src/test/java/com/github/viclovsky/swagger/coverage/Config.java
  77. +29 −2 ...age-commandline/src/test/java/com/github/viclovsky/swagger/coverage/CustomReportTemplateTest.java
  78. +26 −0 ...er-coverage-commandline/src/test/java/com/github/viclovsky/swagger/coverage/ParseOptionsTest.java
  79. +16 −5 swagger-coverage-commandline/src/test/java/com/github/viclovsky/swagger/coverage/SimpleTest.java
  80. +1 −1 swagger-coverage-commandline/src/test/resources/full_configuration.json
  81. 0 swagger-coverage-commandline/src/test/resources/{ → v2}/petstory.json
  82. 0 swagger-coverage-commandline/src/test/resources/{ → v2}/petstory_no_tags.json
  83. 0 swagger-coverage-commandline/src/test/resources/{ → v2}/petstory_operation_wo_tags.json
  84. 0 swagger-coverage-commandline/src/test/resources/{ → v2}/petstory_with_x_example.json
  85. +1,022 −0 swagger-coverage-commandline/src/test/resources/v2/petstory_without_parameters.json
  86. +17 −0 swagger-coverage-commandline/src/test/resources/v2/swagger-coverage-output/empty_parameters.json
  87. 0 swagger-coverage-commandline/src/test/resources/{ → v2}/swagger-coverage-output/enum_param_1.json
  88. 0 swagger-coverage-commandline/src/test/resources/{ → v2}/swagger-coverage-output/enum_param_2.json
  89. 0 swagger-coverage-commandline/src/test/resources/{ → v2}/swagger-coverage-output/ignore_header.json
  90. 0 swagger-coverage-commandline/src/test/resources/{ → v2}/swagger-coverage-output/match_pattern.json
  91. 0 ...er-coverage-commandline/src/test/resources/{ → v2}/swagger-coverage-output/missed_in_swagger.json
  92. 0 ...dline/src/test/resources/{ → v2}/swagger-coverage-output/missed_in_swagger_without_x_example.json
  93. 0 swagger-coverage-commandline/src/test/resources/{ → v2}/swagger-coverage-output/not_200.json
  94. 0 swagger-coverage-commandline/src/test/resources/{ → v2}/swagger-coverage-output/one_coverage.json
  95. 0 swagger-coverage-commandline/src/test/resources/{ → v2}/swagger-coverage-output/one_parameter.json
  96. 0 ...coverage-commandline/src/test/resources/{ → v2}/swagger-coverage-output/one_partial_coverage.json
  97. 0 ...coverage-commandline/src/test/resources/{ → v2}/swagger-coverage-output/test_empty_operation.json
  98. 0 swagger-coverage-commandline/src/test/resources/{ → v2}/swagger-coverage-output/two_coverage.json
  99. +91 −0 swagger-coverage-commandline/src/test/resources/v3/operations/pet_petId.yaml
  100. +696 −0 swagger-coverage-commandline/src/test/resources/v3/petstory.yaml
  101. +683 −0 swagger-coverage-commandline/src/test/resources/v3/petstory_no_tags.yaml
  102. +681 −0 swagger-coverage-commandline/src/test/resources/v3/petstory_operation_wo_tags.yaml
  103. +606 −0 swagger-coverage-commandline/src/test/resources/v3/petstory_ref_operations.yaml
  104. +737 −0 swagger-coverage-commandline/src/test/resources/v3/petstory_with_x_example.yaml
  105. +671 −0 swagger-coverage-commandline/src/test/resources/v3/petstory_without_parameters.yaml
  106. +17 −0 swagger-coverage-commandline/src/test/resources/v3/swagger-coverage-output/empty_parameters.yaml
  107. +38 −0 swagger-coverage-commandline/src/test/resources/v3/swagger-coverage-output/enum_param_1.yaml
  108. +38 −0 swagger-coverage-commandline/src/test/resources/v3/swagger-coverage-output/enum_param_2.yaml
  109. +38 −0 swagger-coverage-commandline/src/test/resources/v3/swagger-coverage-output/ignore_header.yaml
  110. +38 −0 swagger-coverage-commandline/src/test/resources/v3/swagger-coverage-output/match_pattern.yaml
  111. +42 −0 swagger-coverage-commandline/src/test/resources/v3/swagger-coverage-output/missed_in_swagger.yaml
  112. +42 −0 ...ommandline/src/test/resources/v3/swagger-coverage-output/missed_in_swagger_without_x_example.yaml
  113. +38 −0 swagger-coverage-commandline/src/test/resources/v3/swagger-coverage-output/not_200.yaml
  114. +42 −0 swagger-coverage-commandline/src/test/resources/v3/swagger-coverage-output/one_coverage.yaml
  115. +38 −0 swagger-coverage-commandline/src/test/resources/v3/swagger-coverage-output/one_parameter.yaml
  116. +38 −0 swagger-coverage-commandline/src/test/resources/v3/swagger-coverage-output/one_partial_coverage.yaml
  117. +13 −0 swagger-coverage-commandline/src/test/resources/v3/swagger-coverage-output/test_empty_operation.yaml
  118. +38 −0 swagger-coverage-commandline/src/test/resources/v3/swagger-coverage-output/two_coverage.yaml
  119. +5 −2 swagger-coverage-commons/build.gradle.kts
  120. +5 −0 ...er-coverage-commons/src/main/java/com/github/viclovsky/swagger/coverage/CoverageOutputWriter.java
  121. +22 −5 ...-coverage-commons/src/main/java/com/github/viclovsky/swagger/coverage/FileSystemOutputWriter.java
  122. +2 −1 ...overage-commons/src/main/java/com/github/viclovsky/swagger/coverage/SwaggerCoverageConstants.java
  123. +10 −5 ...er-coverage-commons/src/main/java/com/github/viclovsky/swagger/coverage/SwaggerCoverageUtils.java
  124. +9 −1 ...mmons/src/main/java/com/github/viclovsky/swagger/coverage/model/SwaggerCoverage2ModelJackson.java
  125. +5 −4 ...r-coverage-commons/src/main/java/com/github/viclovsky/swagger/coverage/utils/FreemarkerUtils.java
  126. +22 −13 swagger-coverage-commons/src/main/resources/details/operation.ftl
  127. +7 −0 swagger-coverage-commons/src/main/resources/message.en
  128. +7 −0 swagger-coverage-commons/src/main/resources/message.ru
  129. +9 −1 swagger-coverage-commons/src/main/resources/sections/summary.ftl
  130. +7 −4 swagger-coverage-commons/src/main/resources/ui.ftl
  131. +137 −0 swagger-coverage-karate/README.md
  132. +36 −0 swagger-coverage-karate/build.gradle.kts
  133. +99 −0 swagger-coverage-karate/src/main/java/com/github/viclovsky/swagger/coverage/karate/Request.java
  134. +146 −0 ...ger-coverage-karate/src/main/java/com/github/viclovsky/swagger/coverage/karate/RequestWriter.java
  135. +36 −0 ...age-karate/src/main/java/com/github/viclovsky/swagger/coverage/karate/SwaggerCoverageOptions.java
  136. +192 −0 ...rage-karate/src/main/java/com/github/viclovsky/swagger/coverage/karate/SwaggerCoverageRunner.java
  137. +49 −0 swagger-coverage-karate/src/main/resources/httpProxy.feature
  138. +30 −0 swagger-coverage-karate/src/main/resources/karate-base.js
  139. +73 −0 ...coverage-karate/src/test/java/com/github/viclovsky/swagger/coverage/karate/RequestWriterTest.java
  140. +187 −0 ...-karate/src/test/java/com/github/viclovsky/swagger/coverage/karate/SwaggerCoverageRunnerTest.java
  141. +10 −0 swagger-coverage-karate/src/test/resources/api-test-coverage-v2/swagger-coverage-config.json
  142. +1,054 −0 swagger-coverage-karate/src/test/resources/api-test-coverage-v2/swagger-specification.json
  143. +10 −0 swagger-coverage-karate/src/test/resources/api-test-coverage-v3/swagger-coverage-config.json
  144. +802 −0 swagger-coverage-karate/src/test/resources/api-test-coverage-v3/swagger-specification.yaml
  145. +12 −0 swagger-coverage-karate/src/test/resources/petv2.feature
  146. +12 −0 swagger-coverage-karate/src/test/resources/petv3.feature
  147. +42 −0 swagger-coverage-karate/src/test/resources/request.json
  148. +802 −0 swagger-coverage-karate/src/test/resources/wiremock/__files/openapi.yaml
  149. +1,054 −0 swagger-coverage-karate/src/test/resources/wiremock/__files/swagger.json
  150. +10 −1 swagger-coverage-rest-assured/build.gradle.kts
  151. +89 −0 ...est-assured/src/main/java/com/github/viclovsky/swagger/coverage/SwaggerCoverageV3RestAssured.java
  152. +93 −0 ...e-rest-assured/src/test/java/com/github/viclovsky/swagger/coverage/RequestLoggerV3FilterTest.java
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version: 2
updates:
- package-ecosystem: gradle
directory: /
schedule:
interval: weekly
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
25 changes: 20 additions & 5 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Build
name: CI

on:
pull_request:
@@ -12,10 +12,25 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1

- uses: actions/checkout@v3

- name: Set up JDK
uses: actions/setup-java@v1
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 8
- name: "Gradle Build"
run: ./gradlew clean build
cache: 'gradle'

- name: Gradle Build
run: ./gradlew build

- name: Run Demo
if: github.event_name == 'pull_request'
run: ./run.sh

- uses: actions/upload-artifact@v3
if: github.event_name == 'pull_request'
with:
name: custom-report.html
path: custom-report.html
27 changes: 27 additions & 0 deletions .github/workflows/gradle-wrapper-validation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: "Validate Gradle Wrapper"

on:
push:
branches:
- master
paths:
- 'gradlew'
- 'gradlew.bat'
- 'gradle/wrapper/**'
- '.github/workflows/gradle-wrapper-validation.yml'
pull_request:
branches:
- master
paths:
- 'gradlew'
- 'gradlew.bat'
- 'gradle/wrapper/**'
- '.github/workflows/gradle-wrapper-validation.yml'

jobs:
validation:
name: "Validation"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: gradle/wrapper-validation-action@v1
16 changes: 12 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -17,11 +17,19 @@ jobs:
id: release
- name: "Gradle Build"
run: ./gradlew build -Pversion=${{ steps.release.outputs.version }}
- name: "Publish packages to GitHub"

- name: Prepare to publish
run: |
echo '${{secrets.GPG_KEY_CONTENTS}}' | base64 -d > ${{ github.workspace }}/publish_key.gpg
gpg --quiet --batch --yes --decrypt --passphrase="${{secrets.SECRET_PASSPHRASE}}" \
--output ${{ github.workspace }}/secret.gpg ${{ github.workspace }}/publish_key.gpg
- name: "Publish packages to Maven Central"
env:
GITHUB_USER: ${{ secrets.GITHUB_USER }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./gradlew publish -Pversion=${{ steps.release.outputs.version }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
run: ./gradlew --no-parallel publishAllPublicationsToSonatypeRepository -Pversion=${{ steps.release.outputs.version }} -Psigning.secretKeyRingFile=${{ github.workspace }}/secret.gpg -Psigning.keyId=${{secrets.SIGNING_KEYID}} -Psigning.password=${{secrets.SIGNING_PASSWORD}}

- name: "Publish Zip to GitHub"
uses: actions/upload-release-asset@v1
env:
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -11,3 +11,4 @@ build

# Allure
allure-results
bin/
56 changes: 29 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
[license]: http://www.apache.org/licenses/LICENSE-2.0 "Apache License 2.0"
[release]: https://github.com/viclovsky/swagger-coverage/releases/latest "Latest release"
[release-badge]: https://img.shields.io/github/release/viclovsky/swagger-coverage.svg?style=flat
[maven]: https://repo.maven.apache.org/maven2/com/github/viclovsky/swagger-coverage-commandline/ "Maven Central"
[maven-badge]: https://img.shields.io/maven-central/v/com.github.viclovsky/swagger-coverage-commandline.svg?style=flat

[![Build Status](https://github.com/viclovsky/swagger-coverage/workflows/Build/badge.svg)](https://github.com/viclovsky/swagger-coverage/actions)
[![release-badge][]][release]
[![maven-badge][]][maven]

# swagger-coverage
Swagger-coverage gives a full picture about coverage of API tests (regression) based on OAS 2 (Swagger).
Swagger-coverage gives a full picture about coverage of API tests (regression) based on OAS (Swagger).
By saying coverage we mean not a broad theme functionality, but presence (or absence) of calls defined by API methods, parameters, return codes or other conditions which corresponds specification of API.

![Swagger Coverage Report](.github/swagger-coverage.png)
@@ -18,45 +22,31 @@ The next stage is to compare saved result with generated conditions from current
You can use swagger-coverage with any language and framework. You need to have proxy/filter/interceptor that accumulates data in swagger format.
Swagger-coverage have rest-assured integration from the box.

* Add dependencies and filter to your test client
Add repository to pom.xml
```xml
<repositories>
<repository>
<id>viclovsky</id>
<url>https://dl.bintray.com/viclovsky/maven/</url>
</repository>
</repositories>
```
> There is also a Karate integration, which has its own [manual](/swagger-coverage-karate/README.md).
Add filter dependency:
```xml
<dependency>
<groupId>com.github.viclovsky.swagger.coverage</groupId>
<groupId>com.github.viclovsky</groupId>
<artifactId>swagger-coverage-rest-assured</artifactId>
<version>${latest-swagger-coverage-version}</version>
</dependency>
```
or if use gradle, it can be added like
```
repositories {
maven { url 'https://dl.bintray.com/viclovsky/maven' }
}
```

```
compile "com.github.viclovsky.swagger.coverage:swagger-coverage-rest-assured:$latest-swagger-coverage-version"
compile "com.github.viclovsky:swagger-coverage-rest-assured:$latest-swagger-coverage-version"
```

Just add filter into test client SwaggerCoverageRestAssured. For instance, as presented below:
Just add filter into test client SwaggerCoverageRestAssured (SwaggerCoverageV3RestAssured for v3). For instance, as presented below:
```java
RestAssured.given().filter(new SwaggerCoverageRestAssured())
```

* Download and run command line.
Download zip archive and unpack it. Don't forget to replace {latest-swagger-coverage-version} to latest version.
```
wget https://dl.bintray.com/viclovsky/maven/com/github/viclovsky/swagger/coverage/swagger-coverage-commandline/{latest-swagger-coverage-version}/swagger-coverage-commandline-{latest-swagger-coverage-version}.zip
wget https://github.com/viclovsky/swagger-coverage/releases/download/{latest-swagger-coverage-version}/swagger-coverage-{latest-swagger-coverage-version}.zip
unzip swagger-coverage-commandline-{latest-swagger-coverage-version}.zip
```

@@ -67,7 +57,7 @@ Here is help of unzip swagger-commandline
Options:
* -s, --spec
Path to swagger specification.
Path to local or URL to remote swagger specification.
* -i, --input
Path to folder with generated files with coverage.
-c, --configuration
@@ -146,7 +136,7 @@ This rule create condition for comparing declared and received status.
Condition marked as *covered* when result not contains any of undeclared status.
*Uncovered* state of this condition indicates missed status in original swagger-documentation
or server errors.
Options for this rules are placed in *only-declareted-status* subsection in *rules* sections.
Options for this rules are placed in *only-declared-status* subsection in *rules* sections.


You can setup next options:
@@ -159,7 +149,7 @@ You can setup next options:
....
"only-declareted-status" : {
"only-declared-status" : {
"enable" : true
}
},
@@ -208,14 +198,17 @@ You can setup next options:

**filename** - filename for html report.

**numberFormat** - [Extended Java decimal format](https://freemarker.apache.org/docs/ref_builtins_number.html#topic.extendedJavaDecimalFormat) to control how numbers are displayed in the report.

````
{
....
"writers": {
"html": {
"locale": "ru",
"filename":"report.html"
"filename":"report.html",
"numberFormat": "0.##"
}
}
}
@@ -228,14 +221,17 @@ To customize your http report with your own template set full path to the templa
....
"writers": {
"hml": {
"html": {
....
"customTemplatePath": "/full/path/to/report_custom.ftl"
}
}
}
````

[Look here](https://github.com/swagger-api/swagger-parser/blob/master/modules/swagger-parser-core/src/main/java/io/swagger/v3/parser/core/models/ParseOptions.java) to see all available options.


## Demo
I have prepared several tests. Thus you are able to have a look and touch swagger-coverage. Just run ```run.sh``` script.

@@ -244,7 +240,8 @@ Swagger-coverage works fine with clients which were generated from swagger (for
Because all methods/parameters which will be saved are 100% compatible with current API specification.

## Requirements
For a moment swagger-coverage is compatible only with OpenApi specification v2. It is possible that swagger-coverage will support other versions.

For a moment swagger-coverage is compatible only with OpenApi specifications v2 & v3. It is possible that swagger-coverage will support other versions.

## Pull Requests
My project is open for any enhancement. So, your help is much appreciated. Please, feel free to open your pull request or issue and I will consider it in several days.
@@ -253,7 +250,12 @@ My project is open for any enhancement. So, your help is much appreciated. Pleas
[Victor Orlovsky](https://github.com/viclovsky)

## Contributing to swagger-coverage
Thanks to all people who contributed. Especially [@TemaMak](https://github.com/TemaMak) who have contributed significant improvements to swagger-coverage.
Thanks to all people who contributed. Especially

* [@TemaMak](https://github.com/TemaMak)
* [@Emilio-Pega](https://github.com/Emilio-Pega)

who have contributed significant improvements to swagger-coverage.

## License
Swagger coverage is released under version 2.0 of the [Apache License](http://www.apache.org/licenses/LICENSE-2.0)
50 changes: 32 additions & 18 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -3,16 +3,15 @@ import io.spring.gradle.dependencymanagement.dsl.DependencyManagementExtension
buildscript {
repositories {
mavenLocal()
jcenter()
}
}

plugins {
java
id("io.spring.dependency-management") version "1.0.6.RELEASE"
id("io.spring.dependency-management") version "1.0.11.RELEASE"
}

group = "com.github.viclovsky.swagger.coverage"
group = "com.github.viclovsky"
version = version

val root = rootProject.projectDir
@@ -23,33 +22,42 @@ java {
}

configure(subprojects) {
group = "com.github.viclovsky.swagger.coverage"
group = "com.github.viclovsky"
version = version

apply(plugin = "io.spring.dependency-management")
apply(plugin = "java")
apply(plugin = "java-library")
apply(from = "$gradleScriptDir/maven.gradle")
apply(from = "$gradleScriptDir/github-publish.gradle")

configure<DependencyManagementExtension> {
imports {
mavenBom("com.fasterxml.jackson:jackson-bom:2.9.8")
}
dependencies {
dependency("org.freemarker:freemarker:2.3.29")
dependency("io.swagger:swagger-models:1.6.2")
dependency("io.swagger:swagger-compat-spec-parser:1.0.52")
dependency("org.slf4j:slf4j-simple:1.7.12")
dependency("log4j:log4j:1.2.17")
dependency("com.beust:jcommander:1.78")
dependency("junit:junit:4.13.1")
dependency("org.freemarker:freemarker:2.3.31")

//swagger 2.x
dependency("io.swagger:swagger-models:1.6.6")
//swagger 3.x
dependency("io.swagger.core.v3:swagger-core:2.2.0")
dependency("io.swagger.core.v3:swagger-models:2.2.0")
dependency("io.swagger.parser.v3:swagger-parser:2.0.32")

dependency("org.slf4j:slf4j-api:1.7.32")
dependency("ch.qos.logback:logback-classic:1.2.10")

dependency("com.beust:jcommander:1.81")
dependency("junit:junit:4.13.2")
dependency("org.hamcrest:hamcrest:2.2")
dependency("io.rest-assured:rest-assured:4.3.1")
dependency("com.github.tomakehurst:wiremock:2.24.1")
dependency("com.fasterxml.jackson.core:jackson-core:2.10.1")
dependency("com.fasterxml.jackson.core:jackson-databind:2.10.1")
dependency("org.springframework:spring-web:5.2.6.RELEASE")
dependency("com.jayway.jsonpath:json-path-assert:2.7.0")
dependency("io.rest-assured:rest-assured:4.4.0")
dependency("com.github.tomakehurst:wiremock:2.27.2")
dependency("com.fasterxml.jackson.core:jackson-core:2.12.3")
dependency("com.fasterxml.jackson.core:jackson-databind:2.12.3")
dependency("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.12.3")
dependency("com.fasterxml.jackson.core:jackson-annotations:2.12.3")
dependency("org.springframework:spring-web:5.3.7")
dependency("com.intuit.karate:karate-core:1.2.0.RC1")
}
}

@@ -72,6 +80,10 @@ configure(subprojects) {
(options as StandardJavadocDocletOptions).addStringOption("Xdoclint:none", "-quiet")
}

tasks.withType<GenerateModuleMetadata> {
enabled = false
}

artifacts.add("archives", sourceJar)
artifacts.add("archives", javadocJar)

@@ -94,6 +106,8 @@ configure(subprojects) {
))
}
}

apply(from = "$gradleScriptDir/maven-publish.gradle")
}

repositories {
19 changes: 0 additions & 19 deletions gradle/github-publish.gradle

This file was deleted.

Loading