Доброго Времени суток! У меня вопрос как саздать JAR фаил (Запускаймый файл) моего авто теста
Я попытался сделать его по этому - YouTube уроку но на этапе выбора мэйн класса моего проекта вообще не видит.
Версии ОС Linux Ubuntu 16.04 Программа Inellij IDEA
простите пожалуйста @TesterTesterman - вам шашечки или ехать ? наскольк я увидел в Уроке 89 они собирались паковать что то зависящее от swing ( удачи с jarом под 10 мб). Предудущик 88 уроков я честно говоря не посм
отрел. на гитхабе полно (в часности у меня есть ) проектов ‘runnable jar’ может стоит с них - но если вы предпочитаете У 89 - дело хозяйское
Спасибо за ответ! Я достаточно плохо разбираюсь в программировании та что извеняйте если что то глупое напишу…
Цель моих действий на данный момент защитить свои авторские права на мой авто тест, так получается что составленный мной авто тест нужно роздать коллегам по цеху, и мне бы не хотелось что бы они приписывали себе заслуги за мои труды поэтому мне хотелось бы создать запускаемый файл с закрытым исходным кодом.
PS. Возможно я задаюсь не правильной целью. Готов к любым советам
“защитить свои авторские права на мой авто тест” в этом нет надобности, это то же самое что все люди будут ходить по полу, а вы будете ходить по потолку.
У вас в тестовом методе фигурирует driver, а этого быть не должно.
В тестовом методе не надо описывать локаторы.
Исходя из ошибок которые описаны в пунктах 2 и 3 можно смело сказать, что пункт 1 тем более не имеет смысла.
Поверьте никому ваш автотест не надо, в публичной доступе таких тестов миллионы.
Да тут дело не в красоте кода, человек только учится делать тесты, сделал тест и хочет зажать его себе и что бы быть молодцом перед начальством и никто не смог спереть его чудо идею.
Абсолютно всё.
Название тестового класса не понятное.
findElement и driver не должны присутствовать в тесте.
Название теста не понятное.
Нет паттерна PageObject.
generateRandomNumber не должно присутсовать в тестовом классе.
Да и всего теста не видно на скриншоте.
Лучше не аккуратный но стабильно работающий код чем под линеечку но работающий некорректно.
У меня всё работает не разу не подводил.
Конструктивная критика это замечательно но к сожалению пока ваша критика Noksa Alexander таковой не является единственный кто мне пока помог это MOSTOR, да он сказал что у меня всё неправильно но он хотя бы дал направление куда копать, а вы все лишь осуждаете и ничего конструктивного
Вам надо создать класс со стандартным main методом (с него начнётся исполнение вашей программы). В пакете src/main/java, не в разделе с тестами.
В нём (в main методе) надо программно вызвать ваш тест, примерно так (если вы используете TestNG, конечно):
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] { sssddd.class }); // я тут не помню, будет авто импорт этого класса или нужно указывать полный путь к классу
testng.addListener(tla);
testng.run();
Использовать упаковщик (для мавена), это дело прописывается в pom, например :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>имя созданного класса с main методом</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
сделать билд проректа, должно собраться в один джарник.
А вот и нет, например я вам сразу показал пару моментов где стоит поработать.
У вас в тестовом методе фигурирует driver, а этого быть не должно.
В тестовом методе не надо описывать локаторы.
Касательно “У меня всё работает ни разу не подводил.” тут есть много подводных камней, например ваш подход “работает ну и ладно” будет применим к небольшой группе тестов или для демонстрации, но если тестовая система начнет расширятся и у вас будет больше тестов, то такое решение будет нестабильно.
Касательно подхода “под линейку”, эти все “линейки” придумали не просто так, они были придуманы после свершения тысячи ошибок за многие года.
Небольшой пример.
У вас в тестовом методе вы сразу ищите локатор, а что если этот же локатор вы будете использовать еще в десяти тестах? и допустим через неделю разработчик изменить его. Вопрос, вы будете менять локатор во всех 10 тестах? Из этого можно сделать вывод что может метод “под линейку” стоит рассмотреть т.к он решит вышеописанную проблему.
Вы правы и я действительно хочу дорасти до уровня при котором смогу правильно писать код который бы был удобен в эксплуатации и разного род обгрейдах, но увы я пока что профан и двигаюсь мелкими шагами . Мне действительно хочется расти в этой сфере и я был бы особенно благодарен если бы вы посоветовали какой нибудь курс на ютубе или блог который помог бы мне расти в правильную сторону.
Спасибо за критику и желание помочь!
В курсах нет необходимости, вам достаточно смотреть видео на ютубе на тему Selenium и все что с ним связано в контексте вашего языка, читать стати на тему автоматизации, изучать чужие тесты на github и смотрите какими путями люди решают необходимые задачи.