From 41ebe23964fd0d9e6e4abcef0cbbda85503f14bc Mon Sep 17 00:00:00 2001 From: Ilia Date: Wed, 3 Oct 2018 09:09:39 +0300 Subject: [PATCH] Origin/cucumber seeds 1 (#3) * First DB steps readme * cucumber-seeds-1 skeleton * cucumber-seeds-1 skeleton * cucumber-seeds-1 skeleton * cucumber-seeds-1 skeleton * cucumber-seeds-1 skeleton * cucumber-seeds-1 skeleton * cucumber-seeds-1 skeleton * cucumber-seeds-1 skeleton * cucumber-seeds-1 skeleton * cucumber-seeds-1 skeleton * cucumber-seeds-1 skeleton --- .0pdd.yml | 6 + .gitattributes | 8 + .gitignore | 31 +-- .pdd | 6 + .rultor.yml | 29 ++ ...1838180E001CE2448CB8F7F75FB79D276E.key.asc | 60 +++++ ...CC680C8DB53E950E80A750DCC25527E68D.key.asc | 60 +++++ .rultor/pubring.kbx.asc | 67 +++++ .rultor/secret.pgp.asc | 121 +++++++++ .rultor/settings.xml.asc | 37 +++ .travis.yml | 20 ++ LICENSE => LICENSE.txt | 6 +- README.md | 104 +++++++- pom.xml | 248 ++++++++++++++++++ src/verifier/verifications.xml | 32 +++ 15 files changed, 808 insertions(+), 27 deletions(-) create mode 100644 .0pdd.yml create mode 100644 .gitattributes create mode 100644 .pdd create mode 100644 .rultor.yml create mode 100644 .rultor/private-keys-v1.d/446C141838180E001CE2448CB8F7F75FB79D276E.key.asc create mode 100644 .rultor/private-keys-v1.d/C74CD4CC680C8DB53E950E80A750DCC25527E68D.key.asc create mode 100644 .rultor/pubring.kbx.asc create mode 100644 .rultor/secret.pgp.asc create mode 100644 .rultor/settings.xml.asc create mode 100644 .travis.yml rename LICENSE => LICENSE.txt (87%) create mode 100644 pom.xml create mode 100644 src/verifier/verifications.xml diff --git a/.0pdd.yml b/.0pdd.yml new file mode 100644 index 0000000..0bc9886 --- /dev/null +++ b/.0pdd.yml @@ -0,0 +1,6 @@ +errors: + - ilia.rogozhin@gmail.com + +tags: + - pdd + - bug \ No newline at end of file diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..b553dc5 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,8 @@ +# Check out all text files in UNIX format, with LF as end of line +# Don't change this file. If you have any ideas about it, please +# submit a separate issue about it and we'll discuss. + +* text=auto eol=lf +*.java ident +*.xml ident +*.png binary \ No newline at end of file diff --git a/.gitignore b/.gitignore index a1c2a23..0d13281 100644 --- a/.gitignore +++ b/.gitignore @@ -1,23 +1,8 @@ -# Compiled class file -*.class - -# Log file -*.log - -# BlueJ files -*.ctxt - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* +target/ +.idea +.DS_Store +*.iml +.project +.settings +.classpath +.recommenders \ No newline at end of file diff --git a/.pdd b/.pdd new file mode 100644 index 0000000..4400e11 --- /dev/null +++ b/.pdd @@ -0,0 +1,6 @@ +--source=. +--verbose +--exclude target/**/* +--rule min-words:20 +--rule min-estimate:15 +--rule max-estimate:90 \ No newline at end of file diff --git a/.rultor.yml b/.rultor.yml new file mode 100644 index 0000000..83fedcc --- /dev/null +++ b/.rultor.yml @@ -0,0 +1,29 @@ +docker: + image: maven:3.5.4-jdk-8-alpine +assets: + settings.xml: "repo/.rultor/settings.xml.asc" + private-keys-v1.d/446C141838180E001CE2448CB8F7F75FB79D276E.key: "repo/.rultor/private-keys-v1.d/446C141838180E001CE2448CB8F7F75FB79D276E.key.asc" + private-keys-v1.d/C74CD4CC680C8DB53E950E80A750DCC25527E68D.key: "repo/.rultor/private-keys-v1.d/C74CD4CC680C8DB53E950E80A750DCC25527E68D.key.asc" + pubring.kbx: "repo/.rultor/pubring.kbx.asc" + secret.pgp: "repo/.rultor/secret.pgp.asc" +env: + MAVEN_OPTS: -Xmx1g + JAVA_OPTS: -Xmx1g +install: | + sudo gem install --no-rdoc --no-ri pdd + sudo gem install --no-rdoc --no-ri xcop +architect: + - smallcreep +merge: + script: | + pdd --file=/dev/null + mvn clean install -Pqulice --errors --settings ../settings.xml +deploy: + script: | + mvn clean deploy -Pqulice --errors --settings ../settings.xml +release: + script: |- + [[ "${tag}" =~ ^[\d]+(\.\d+){2}$ ]] || exit -1 + mvn versions:set "-DnewVersion=${tag}" + git commit -am "${tag}" + mvn clean deploy -Pcucumber-seeds -Psonar -Pqulice -Psonatype --errors --settings ../settings.xml \ No newline at end of file diff --git a/.rultor/private-keys-v1.d/446C141838180E001CE2448CB8F7F75FB79D276E.key.asc b/.rultor/private-keys-v1.d/446C141838180E001CE2448CB8F7F75FB79D276E.key.asc new file mode 100644 index 0000000..4153a71 --- /dev/null +++ b/.rultor/private-keys-v1.d/446C141838180E001CE2448CB8F7F75FB79D276E.key.asc @@ -0,0 +1,60 @@ +-----BEGIN PGP MESSAGE----- + +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 +dexG4gClUY6JNdei5uOxSmtHvyKwWGqxGI2x +=Lqj5 +-----END PGP MESSAGE----- diff --git a/.rultor/private-keys-v1.d/C74CD4CC680C8DB53E950E80A750DCC25527E68D.key.asc b/.rultor/private-keys-v1.d/C74CD4CC680C8DB53E950E80A750DCC25527E68D.key.asc new file mode 100644 index 0000000..219a452 --- /dev/null +++ b/.rultor/private-keys-v1.d/C74CD4CC680C8DB53E950E80A750DCC25527E68D.key.asc @@ -0,0 +1,60 @@ +-----BEGIN PGP MESSAGE----- + +hQEMA5qETcGag5w6AQf+KhkmkZsjc6hJpe1pADoeiJR63wXoH6MQNCFkzk9bmRyV +rRAEdGApTtAgkRCHVk3Ih13b084AcIqHTCxr2mJ6AWEe1SvnQfHUr3ivVQZjj2Qo +stIfnNEhVRtDQjnQR1m0kzP6xRToMGyEOoUuQi9xvVtz/vxEpvmDOoWmLywMIjBV +dVwNwOLJwmnatSGX4FIIf5n1ZPs424qCfiJE3NkHAwUVc1KS0WE0gXVp21DrZtWa +icWYDD5tyobkQWGlr/NjkQ1iyHXnifUgprAiy3A+Lb9f0pT8GhUScsFNWcrYgArm +fPk0dDvZncZq3NrUEK/uHES7da9lEO1NQ7ekaSQHQNLrAcpi+2LoMFrBZ/FEn+RO +41tC283NfJiDYIdHwKtptH8djCdJEEx3fF90iNnlh55F+G1MQOYg1QBS3RCFpW7g +cicxuX1hSG9xc0xzKvMnym33JdCElLAS76C5qq4eqzINKXeK3SSpsjAywmpZOwRG +6c+OCk9dzTFzCAi6iFwFUaJUJzvvZGtyx3JZ8B+eHbYbS/JWsOHEvauzJpyC8p5k +3psYGsS7SfNP/c5LpAIx6me0Y6MgblNncgjAfeW6apWFduYiI0CnPBClnN4Vfmww +igPlk9ENTlbvorJ7YSbkqRqUPbj5heBUMrPVvVon2mt+ZGEO6C8Z0/3BO8qY1q7F +b1t7g+dUBdYF3wqutQYhwTJtdG0Q00TAo370145uezRjj7aYk97Kg89mEhA0O5VX +zlTIM1WVW8ypCSC0gaW3m5ZR1M+WsP5WDpJyHmZ0+Yl/mkcR3WjA5IDXquWqiICi +Mt4ImcBdvh4MRdoxhs6plVYHo6LPZYmDTiY2tzUQfbQBZbdSzSLpo6iiO48nCV/1 +h4jyr3ZsOj14k1YlbIp4tX31sWy18atfAIx8fDYWiC9izx7CLzkG/zVH6bma+5RQ +Ie+FSjtU0SUAR3pEHjK3PJI63bO1Wt4GWlMHpZ7yKrOWoYfNNuRzuxtCkxTZe5of +cUdJsHC7Mj1z9Z1eSvNL7FZhKCW6NgNNci2JMe30Z4+u8hSttW5kCX6MQ0DsJEkK +4iwNNxdcHWxjAT6mBf019Qvy3I/r04lTETfTudASkQ6A1+/vIk1h4YDjjU25uJp7 +qdijPFBktmiRQny+42p2apLrSqCsCA7Zqr90sSrt3orvSByFD9XkT8VNHSLpMchQ +4Yt1IpRQsdVFIydHQK2b6oQn7t+t6mCD6yRiKPgWB4R4VTkjZpIfncy3o1VCuYNr +ccv3wcj7fUoVb9FuFdscnbbT/CibOEzWXU+zP+qLQgbBcwQtxdvCu9JVSNcy6z5X +p9L4c46T1y/3bzgxFvYf9WmYfJInyIKFjqxx5wYFY/+wx7/Pq0oRCQ1I4p1bSlzi +kTJhZ2ppBY1kqfHlyrth+XO1VdLZNM4PigD3ZGMccfAbUmKCKtwQacv2I8Ep0WP7 +JFTvVIgIAozZM8nZoS3/Nq5Ei9ibDGUUiNMIHGJu8HHAynbfMNzdtx7xpjJfDfVu +Jyirox21owL9dJQiUx57frmrMbBKAEUZtWw74ZEaf2SHuhgDkl11jYbYWKmE5wg/ +CGy51oyeyFEqYomQRqRuX0wga9paf0O78OOVLtzL7MFnni/83z2OYngUl7HMvc++ +RNqePxRhaCFOhoduCKNQgHgkEtM1mkW9ubz3Nc1tpukynLMgXivrsQRniYsmLd0J +dWJR4BclOIUppS4u8JudCDEwKfKups821tRe3zmaT4fXZSI14bGZr4RerX+w4ZtD +7mWL1Rmov6M+CxD1tjOb2Tv32Vt5KGLR+0JkiK+ZUQ+l7NysbxYanIUnVbI01KRo +CyCNMKqQTKf+DRB4Pp0WKm/6S7y+BIPNU7tRLFzhNaqMpB1j53ZdMh6HaZG1cltw +hh1N5VeVY8g8GvLBwiXHb27elPChekYsUYwV9JVMAR0YfjdFbPKtLynZx1SWEwgj +PI2OZ+0JuaSMyc6YBaG2mCX5zDwoTMNBzawi5rhqmx89ndvNBrZbLzUYVUSB7ioJ +pM6oHuEJAAh0PIMo08HHnCDeiPbhNTwtWdw59I/Qn4rTwLn9NKerMZS8z4PHx1Q5 +x2aTckLYmXjKZ85Q8EuG0qIbJsZLZHLk6w04FjbmMticnZpZkCMOdltvBuARae4J +POFARnWkG1zLNXeHlXTrXFuXA1HtSX/zaDf5KiQpvH/8fK4OQBKJ0yOfHqHNzsX2 +td0qWBa56JFtppvFgSbSgRHEIBI+5rkN/J2yYTteuZKdJePvsprd7iN09RpyiS6v +AfBmaEp85nSvdtl78csfQNrFmp9Pj9vkzk4nyBZHYrPoGhDkaQ+/+Z+hchNnrBey +4ksFVH15aNbPVH698/GXl7kR7Ll4yVVW8/gHvXMzY/+5rgnT6IWn+Kt1jJg+UfOR +HRhYEk+tyT3ggPmvZuxtZZEatVQ9/IuusxM7/aOv5vTuqMyX3YGWWXEZSrojt9MU +zB69ZXYwp1tqyV+KRYAHs2Z9PGgSjH9kDrHGR+64h7DzcLvlfgpPKpejov31PbO6 +/ZgHbL9tb7xN9BB5BsSGg/gMftmLCih5okLXxMJutxg/wki2W6yQc3vFGtjCS77N +JTDhEKdbDv8jePpHFdztWnCnqaatNyHuSvvUdIhdnhSwFloxJblSbOKXfgMSKL4d +AsXvYQo5pZ6L5wSODa8yZSRRxFYTAE57oEzrwnUqNtRVgnlYa/uiTvvCORZR3Mk4 +Oufan9ICOiHYr//A8DZLffTtasondFfmD5PQJiMuHjgKLcIMSSNOM9Ah5hxeLnyw +y0jbcJ+ax9ZbfRpPtPYP7PVSkYQcfI6+uStdTXcrQVfcSzanqGpU4BNS86sxuBtC +qulpbfDfUHNCaFDS4yAQ7rwzodXvB33erLTMmkvBkWcgPYg+qrUFlL/wC4SxS1gH +3LxgFc0lZ62cZmIhM96/2/Qm3hkf1f5ViCJJkuSGLJ+IM9W4H8hYsIJuf+tJWzwT +usCjMjZzg95QTzWKW4xxU6lWtECVjcZJmtNPqnd7RCl3TnXICWWDpDw/iis/7m+p +9LRMiNFA0nCZF8PjXTHmQkPAmM4ABb/wuBMgb8ew71w2SfArFV79gh/LkUvipubE +l4ASpIDAMa5BJZnmbXvntGsWzymWxsMkNKxSZVMy6u9PTTxfzdiHN1bbCVVTNpfI +qlmxNDKpyUDWS5EZykm+aET/eve6FVqhf2jBSi/AQcCnGyLp3AF9sm+2Zqxagczp +FzLfc+QnZwURh4hRiUvZYRX0wuwGSDAWxe5NDi2hE05fRThQxwB71sROkBx5n/Rm +coZVr/vIHyuptcMeJc2K1v7k9gBvpYkSnibTM/nsDW1Hhzc1b4I6n0vmc8TnHEEC +Af8VFbYTdiVubF7wikABvybsDSY1JCie46dpCpBBJFugO/WWbQ1o4uw3Gfz6c1FR +MjB6PHH4Z2ofdhPhRZ7gJ+2tvDHkYzYFdcoQ1lgwbK3WSLOP3++qY2ouak4irHCh +TCbav5Zx73RUYmL0+QrXjeVfsTAG0lhufLKS +=yzjU +-----END PGP MESSAGE----- diff --git a/.rultor/pubring.kbx.asc b/.rultor/pubring.kbx.asc new file mode 100644 index 0000000..3f0aba1 --- /dev/null +++ b/.rultor/pubring.kbx.asc @@ -0,0 +1,67 @@ +-----BEGIN PGP MESSAGE----- + +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 +z7jODyo= +=UO+z +-----END PGP MESSAGE----- diff --git a/.rultor/secret.pgp.asc b/.rultor/secret.pgp.asc new file mode 100644 index 0000000..1afccc7 --- /dev/null +++ b/.rultor/secret.pgp.asc @@ -0,0 +1,121 @@ +-----BEGIN PGP MESSAGE----- + +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 +aBbpbXDa30TN +=JTw9 +-----END PGP MESSAGE----- diff --git a/.rultor/settings.xml.asc b/.rultor/settings.xml.asc new file mode 100644 index 0000000..c5f0768 --- /dev/null +++ b/.rultor/settings.xml.asc @@ -0,0 +1,37 @@ +-----BEGIN PGP MESSAGE----- + +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 +E9oIpjccw7AkNdBIlQmrVt4IMkfH8aJn4A== +=Mp88 +-----END PGP MESSAGE----- diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..d653d6b --- /dev/null +++ b/.travis.yml @@ -0,0 +1,20 @@ +language: java +sudo: false +cache: + directories: + - $HOME/.m2 +script: + - set -e + - pdd --file=/dev/null + - mvn clean install -Pqulice --errors --batch-mode +install: + - gem install pdd + - gem install xcop +env: + global: + - MAVEN_OPTS="-Xmx256m" + - JAVA_OPTS="-Xmx256m" +jdk: + - oraclejdk8 +after_success: + - "bash <(curl -s https://codecov.io/bash)" \ No newline at end of file diff --git a/LICENSE b/LICENSE.txt similarity index 87% rename from LICENSE rename to LICENSE.txt index 774542c..aa09339 100644 --- a/LICENSE +++ b/LICENSE.txt @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2018 Ilia +Copyright (c) 2018 Ilia Rogozhin (@smallcreep) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -9,8 +9,8 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, diff --git a/README.md b/README.md index 92a4a43..3c4f485 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,104 @@ # cucumber-seeds -Defenitions basic steps for automation test on cucumber +Definitions basic steps for automation test on cucumber + +**ATTENTION**: We're still in a very early alpha version, the API +may and _will_ change frequently. Please, use it at your own risk, +until we release version 1.0. You can view our progress towards +this release [here](https://github.com/smallcreep/cucumber-seeds/milestone/1). + +**Мотивация** Нам не нравятся проекты +[Beryllium](https://github.com/tomitribe/beryllium), +[Akita](https://github.com/alfa-laboratory/akita) из-за того, +что в них не очень правильно называны шаги, +малое количество шагов, отстутвие некоторых функциональностей +(например: Подключение в одном сценарии к нескольким базам данных). +Отстсутвует возможность не писать кода для новых страниц на UI. + +**How to use** TBD + +## Примеры шагов + +### Шаги для DB + +Шаги используют JDBC драйвер. +Зависимость на [jcabi-jdbc](https://github.com/jcabi/jcabi-jdbc) + +**Параметры подключения к DB:** +* `cucumber.seeds.db` - алиасы имен DB через запятую, обязательно нужно указать хотябы один, +должны быть уникальными (пр. `master`, `master,input,test`); +* `cucumber.seeds.db.jdbc.driver` -JDBC драйвер (пр. `org.postgresql.Driver`), +нужно подключать драйвера библиотек, будет использоваться по умолчанию для всех баз, +у которых он не определн; +* `cucumber.seeds.db.%db_name%.jdbc.driver` - JDBC драйвер (пр. `org.postgresql.Driver`), +нужно подключать драйвера библиотек; +* `cucumber.seeds.db.jdbc.url` - JDBC Url для коннекта к DB +(пр. `jdbc:postgresql://localhost/db_name`), +будет использоваться по умолчанию для всех баз, у которых он не определн; +* `cucumber.seeds.db.%db_name%.jdbc.url` - JDBC Url для коннекта к DB +(пр. `jdbc:postgresql://localhost/db_name`); +* `cucumber.seeds.db.user` - юзер из под которого будет производится коннект к DB +(пр. `jeff`), +будет использоваться по умолчанию для всех баз, у которых он не определн; +* `cucumber.seeds.db.%db_name%.user` - юзер из под которого будет производится коннект к DB +(пр. `jeff`); +* `cucumber.seeds.db.password` - пароль который будет использоваться при коннект к DB +(пр. `secret`), +будет использоваться по умолчанию для всех баз, у которых он не определн; +* `cucumber.seeds.db.%db_name%.password` - пароль который будет использоваться при коннект к DB +(пр. `secret`); +* `cucumber.seeds.db.encrypted.password` - зашифрованный пароль который будет использоваться при коннект к DB +(пр. `secret`), +будет использоваться по умолчанию для всех баз, у которых он не определн; +* `cucumber.seeds.db.%db_name%.encrypted.password` - зашифрованный пароль который будет использоваться при коннект к DB +(пр. `secret`). + +**Шаги для работы с базой данных:** +```gherkin +# Примеры подключения к DB и вставки значений в таблицу +Given The connection to the database master # Подключение к BD с алиасом master. +And There is row in the public.test: # Добавление одной строки в таблицу public.test + | iid | name | + | 1 | first | +And The default schema is public # Устанавливаем схему по умолчанию, можем ее менять в дальнейшем, по умолчанию берется из xml файла схемы базы. +And There are rows in the test: # Добавление нескольких строк в таблицу public.test (используем схему по умолчанию) + | iid | name | + | 2 | second | + | 3 | third | +Given The connection to the database input # Подключение к BD с алиасом input. +And There is column login to iid on the public.test2 # Устанавливаем ссылку iid на значение колонки login в таблице public.test2 +And The generate function username for column login on the public.test2 # Устанавливаем функцию username для генерации случайного значения в поле login +And There are rows in the public.test2: + | iid | name | + | 1 | first | + | 2 | second | +# Получение значений из базы +Given There is value column login from the public.test2 for iid=2 in variable login # Устанавливаем значение в переменную login из значения колонки login таблицы public.test2 для строки с iid=2 +And There is count rows from the public.test2 in variable count # Устанавливаем значение в переменную count количества колонок в таблице public.test2 +Then The public.test2 should has rows: # Проверка что таблица имеет таки строки, сверяет только указанные значения + | iid | name | + | 1 | first | + | 2 | second | +And The public.test2 should has value first in the column name for iid=1 # Проверка что значение в колонке name таблицы public.test2 равно значению first для строки с iid=1 +# TBD Получение значений по условию +# Примеры Изменения значения +# TBD +# Удаление значений +# TBD +# Вызов функций +# TBD +``` + +#### iid +По умолчанию `iid` это ссылка на возвращаяемый id строки, +можно переопределить iid к привязке в xml схеме базы данных, там можно использовать составной ключ. +Также можно поменять связь `iid` во время выполнения теста, +но это можно сделать только один раз для каждой таблицы и до первой вставки в эту таблицу. + +#### Generation function + +Описать функции для генерации... + +Установка функции для генерации может быть произведена в xml описании схемы базы данных. +Также можно переопределять генерацию полей во время теста, +в этом случае значение будет генерироваться из новой функции до окончания теста +или нового переопределения в этом тесте. diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..ad84946 --- /dev/null +++ b/pom.xml @@ -0,0 +1,248 @@ + + + + 4.0.0 + + com.jcabi + parent + 0.49.2 + + com.github.smallcreep + cucumber-seeds + 0.0.1-Snapshot + jar + cucumber-seeds + Definitions basic steps for automation test on cucumber + https://github.com/smallcreep/cucumber-seeds + 2018 + + Cucumber-seeds + https://github.com/smallcreep/cucumber-seeds + + + + MIT + https://github.com/smallcreep/cucumber-seeds/blob/master/LICENSE.txt + site + + + + + 1 + Ilia Rogozhin + ilia.rogozhin@gmail.com + ilia.rogozhin + https://github.com/smallcreep + + Architect + Developer + + +3 + + + + GitHub + https://github.com/smallcreep/cucumber-seeds/issues + + + scm:git:git@github.com:smallcreep/cucumber-seeds.git + scm:git:git@github.com:smallcreep/cucumber-seeds.git + https://github.com/smallcreep/cucumber-seeds + + + rultor + http://www.rultor.com/p/smallcreep/cucumber-seeds + + + + github-pages + https://github.com/smallcreep/cucumber-seeds + + + + + + + + + maven-compiler-plugin + 3.7.0 + + 1.8 + 1.8 + + + + org.apache.maven.plugins + maven-verifier-plugin + 1.1 + + + main + package + + verify + + + src/verifier/verifications.xml + + + + + + + + + + qulice + + + + com.qulice + qulice-maven-plugin + 0.18.2 + + + + + org.jacoco + jacoco-maven-plugin + 0.8.2 + + file + + + + jacoco-initialize + + prepare-agent + + + + jacoco-check + test + + check + + + + + BUNDLE + + + INSTRUCTION + COVEREDRATIO + 0.0 + + + LINE + COVEREDRATIO + 0.0 + + + BRANCH + COVEREDRATIO + 0.0 + + + COMPLEXITY + COVEREDRATIO + 0.0 + + + METHOD + COVEREDRATIO + 0.0 + + + CLASS + MISSEDCOUNT + 0 + + + + + + + + jacoco-site + install + + report + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.0.1 + + + + todo + X + + + checkstyle + X + + + + + + javadoc-generate + test + + javadoc + + + + + + + + + sonar + + + + org.sonarsource.scanner.maven + sonar-maven-plugin + 3.5.0.1254 + + + package + + sonar + + + + + + + + + diff --git a/src/verifier/verifications.xml b/src/verifier/verifications.xml new file mode 100644 index 0000000..6c45c10 --- /dev/null +++ b/src/verifier/verifications.xml @@ -0,0 +1,32 @@ + + + + + + LICENSE.txt + 2018 + + +