JUnit 4: Настройте вещи в наборе тестов, прежде чем тесты будут запущены (как @BeforeClass метод теста, только для набора тестов)

UBUNTU 16.0.4 (07.12.2016)

установить драйверы PHP-MONGODB: Командующие: - sudo pecl install mongodb -> résultat: Процесс сборки успешно завершен Установка '/ usr / lib / php / 20151012 /mongodb.so 'install ok: channel: //pecl.php.net/mongodb-1.2.0 параметр конфигурации «php_ini» не установлен в расположение php.ini. Вы должны добавить «extension = mongodb.so» в php.ini

                    -> la librairie se trouve dans "/usr/lib/php/20151012/mongodb.so"
            - sudo systemctl restart apache2.service
            https://secure.php.net/manual/en/mongodb.installation.pecl.php
            - create 2 new files called "30-mongodb.ini" in both path to add the extension to your server:
                -/etc/php/7.0/fpm/conf.d/30-mongodb.ini
                -/etc/php/7.0/cli/conf.d/30-mongodb.ini
                Commandes :
                    sudo nano /etc/php/7.0/fpm/conf.d/30-mongodb.ini

                        -> add "extension=mongodb.so"

                    sudo nano /etc/php/7.0/cli/conf.d/30-mongodb.ini

                        -> add "extension=mongodb.so"


            - Test if the mongodb extension is running in your server :
                Commandes :
                    php --ini

установить DoctrineMongoDBBundle: http://symfony.com/doc/current/bundles/DoctrineMongoDBBundle/index.html , http: //www.doctrine -project.org/2016/06/09/odm-1-1-0-and-1-0-6.html,

    Commandes :
        - cd
        - cd my_project_name
        - ls -a composer*
            -> résultat : composer.json  composer.lock
        - sudo nano composer.json
        - Add to the composer.json in "require" array
            "doctrine/mongodb-odm": "^1.0",
            "doctrine/mongodb-odm-bundle": "^3.0"
        - Add to the composer.json in "require" array
            "alcaeus/mongo-php-adapter": "^1.0",
            "ext-mongo": "*"
        - Add a new array :
            "provide": 
            {
                "ext-mongo": "1.6.12"
            }
        - Move 
        sudo cp -i /usr/lib/php/20151012/mongodb.so /etc/php/7.0/cli

Чтобы дать решение, которое мне нужно на не менее 10 репутации для публикации ...

24
задан Mihai Limbășan 31 March 2009 в 19:25
поделиться

3 ответа

jUnit не может сделать такой вещи - хотя TestNG действительно имеет @BeforeSuite и @AfterSuite аннотации. Обычно, Вы заставляете свою систему сборки делать это. В знатоке существуют фазы "прединтеграционного теста" и "постинтеграционного теста". У МУРАВЬЯ хорошо Вы просто добавляете шаги к задаче.

Вашим вопросом является в значительной степени дубликат Прежде и После рычага выполнения Комплекта в jUnit 4.x, таким образом, я смотрел бы на предложения там.

1
ответ дан Community 29 November 2019 в 00:15
поделиться

Одна опция состоит в том, чтобы использовать что-то как Муравей Apache для запуска комплекта модульного теста. Можно тогда поместить целевой вызов прежде и после цели junit, чтобы запустить и остановить веб-сервис:

<target name="start.webservice"><!-- starts the webservice... --></target>
<target name="stop.webservice"><!-- stops the webservice... --></target>
<target name="unit.test"><!-- just runs the tests... --></target>

<target name="run.test.suite" 
        depends="start.webservice, unit.test, stop.webservice"/>

Вы тогда выполняете свой комплект с помощью муравья (или предпочтительный инструмент интеграции). Большинство IDE имеет поддержку Муравья, и она делает намного легче переместить Ваши тесты в непрерывную среду интеграции (многие из которых используют целевые объекты Ant для определения их собственных тестов).

0
ответ дан Dan Vinton 29 November 2019 в 00:15
поделиться

Как в стороне, это - плохая идея иметь модульные тесты, на самом деле называя внешние ресурсы как веб-сервисы, базы данных, и т.д.

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

Мой совет:

Взгляд на насмешку внешних зависимостей в модульных тестах с чем-то как EasyMock ( http://www.easymock.org/ ).

Сборка отдельный комплект интеграционных тестов с чем-то как Fitnesse ( http://fitnesse.org/ ) или решение собственной разработки, которое работает против тестовой среды и которое является постоянно.

-2
ответ дан Nick Holt 29 November 2019 в 00:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: