Если нельзя, но очень хочется, то нужно обязательно и ничего в мире не стоит того, чтобы делать из этого проблему!

Если тебе полезно что-то из того, чем я делюсь в своем блоге - можешь поделиться своими деньгами со мной.
с пожеланием
столько времени читатели провели на блоге - 
сейчас онлайн - 
Показаны сообщения с ярлыком groovy. Показать все сообщения
Показаны сообщения с ярлыком groovy. Показать все сообщения

пятница, 27 июня 2014 г.

[Java] Как перевести java тесты на groovy в maven проекте

Задолбался я писать тесты на java - жуть!

Чтобы перевести свои тесты на groovy надо

1) добавить зависимость в pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project ... >
    
 ...
 
 <dependencies>
        ...
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>2.35.0</version>
            <scope>text</scope>
        </dependency>
    </dependencies>
 
<build>
        ...

        <plugins>
            ...
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <id>test-compile</id>
                        <phase>test-compile</phase>
                        <configuration>
                            <tasks>
                                <mkdir dir="${basedir}/src/test/groovy"/>
                                <taskdef name="groovyc"
                                         classname="org.codehaus.groovy.ant.Groovyc">
                                    <classpath refid="maven.test.classpath"/>
                                </taskdef>
                                <mkdir dir="${project.build.testOutputDirectory}"/>
                                <groovyc destdir="${project.build.testOutputDirectory}"
                                         srcdir="${basedir}/src/test/groovy/" listfiles="true">
                                    <classpath refid="maven.test.classpath"/>
                                </groovyc>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    
</project>

2) создать в папке \src\test рядом с папкой java папку groovy

3) переместить туда все тесты, переименовав их в *.groovy

4) запустить и отладить (если надо)

Intelij Idea хорошо работает с goovy скриптами

четверг, 17 октября 2013 г.

Тестируем на Groovy: Шаблончик Spring MVC веб приложения (Maven + Jetty) но с тестами на Groovy (WebDriver)

Такой же как и вчера примерчик, только теперь там тесты на груви (скачать исходник).

Немного статей собрал по ходу. Для создания чистого groovy проекта с нуля может помочь статья. Вот тут можно прочитать о том как добавить Groovy maven plugin в pom.xml для компиляции скриптов groovy в своем приложении. Можно качнуть (и распаковать в c:/java рядом с jdk) Groovy SDK, только я не уверен нужна ли она для maven проекта - один раз IDEA меня спросила про него, я и указал место жительства. Вот тут можно найти несколько книг по Groovy. А вот еще много быстрой инфы о Groovy.

Самое печальное, что потребуется сделать - вернуться к старой версии запуска юнит тестов (< 4) и экстендится от GroovyTestCase а так же начинать названия тестовых методов с test.
import groovy.util.GroovyTestCase

class MyTest extends GroovyTestCase {
 
  void testMyTestMethod() {
  }

}
Но это мелочи по сравнению с теми возможностями, какие дает groovy. Вот хорошая вводная статья по возможностям groovy .

Зачем это все?  Вот немного замечаний из прошлого опыта:

+ тесты на скрипте писать намного приятнее чем на чистой Java тут тебе и замыкания и всевозможные синтаксические углеводы. Вообще код писать на !Java языке приятно - меньше слов больше дела, но не все готовы сделать этот важный шаг на своем проекте, потому-то можно начинать с написания новых тестов не на Java.

+ для начала достаточно создать source/test папку groovy, после в нее можно переместить часть классов/тестов переименовав расширение файлов c java на groovy. И продолжить работу. Обычно скомипилированный java код не вызывает ошибок компиляции на groovy.

+ все что можно было делать на java - все библиотеки доступны так же и для groovy.

для любителей дебага - IDEA хорошо справляется и с этой задачей.

+ используя такую архитектурку я укрепляюсь в зании еще одного языка программирования. Это плюс, как ни крути.

- не все рефакторинги доступны. А ты точно всеми-пре-всеми пользовался? Я нет, мне главное самые примитивные (extract method/variable/constant/class, move ..., inline ...) чтобы были.

- (он же и +) не всегда компилятор подсказывает, что я не прав приходится чаще запускать тесты - это уже плюс. Тесты хочется делать более быстрыми, а запускать часто тесты хорошая практика по борьбе с дебагом.

- немного тебя ломать прийдется изучая что-то новое. Чтобы привыкнуть к языку рекомендую такое упражнение. Вычитываешь какую-то фичу, например - ставить точку с запятой в конце каждой строчки не обязательно, так же как писть return в последней строчке, возвращающей из метода результат. Берешь и во всех классах заменяешь это чтобы было под один стиль. Многократно совершаемое действие лучше отложится в памяти. А завтра можно будет попробовать что-то еще...

- ейфория от возможностей языка вероятно породит на начальном пути порцию говнокодо. С груви легче выстрелить себе в ногу.

Простой пример, зачем это. Вот метод на джаве
    public List<Item> getItems() {
        List<String> result = new LinkedList<String>();
        List<WebElement> elements = getFlightElements();
        for (WebElement element : elements) {
            result.add(new Item(element.getText()));
        }
        return result;
    }
А вот тот же метод на groovy
    List<Item> getItems() {
        getFlightElements().collect {
            new Item(it.text)
        }
    }
И это только цветочки...
Дальше возьмемся за Scala - говорят она круче!

пятница, 24 декабря 2010 г.

Подборка #38

Есть и другие подборки: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12, #13, #14, #15, #16, #17, #18, #19, #20, #21, #22, #23, #24, #25, #26, #27, #28, #29, #30, #31, #32, #33, #34, #35, #36, #37, #38, #39, #40

Как бы ножки не украли...


Читать дальше...

вторник, 23 ноября 2010 г.

Java for fun: Как собрать Groovy проект с помощью Ant

Потратил на написание ant build пару часов, думаю их сэкономить читателю. Итак есть проект написанный на groovy. Структура проекта такая:

 В корне находится build.xml, листинг которого я представлю позже. Файл build.num содержит номер билда и генерится антом автоматически.
Читать дальше...

пятница, 5 ноября 2010 г.

Подборка #32

Есть и другие подборки: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12, #13, #14, #15, #16, #17, #18, #19, #20, #21, #22, #23, #24, #25, #26, #27, #28, #29, #30, #31, #32, #33, #34, #35, #36, #37, #38, #39, #40

Сегодня впервые пробую новый режим рабочего дня. Опытным путем я заметил, что после обеда (ням-няма) и до 18:00 у меня самая непродуктивная часть дня и, если я давлю из себя продуктивность в это время, то домой несу плохое настроение. Выход? У нас в компании график гибкий, а значит работаю сутра и до 14:00 после чего кушаю, сажусь на велик и мчу в неизвестном направлении. Читать дальше...

вторник, 19 октября 2010 г.

Подборка #28

Есть и другие подборки: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12, #13, #14, #15, #16, #17, #18, #19, #20, #21, #22, #23, #24, #25, #26, #27, #28, #29, #30, #31, #32, #33, #34, #35, #36, #37, #38, #39, #40

Читая эту статью у меня выстраивалась в голове полная противоположность (как оно часто бывает) - закостенелая бюрократическая контора. Получается бюрократия и креатив - антиподы (для меня)? В любом случае офис и начальство то, что надо. Спасибо Валерка!

...Я начал работать с Groovy! Ура!...

...видео без комментариев. Читать дальше...