2017-02-22 13 views
-1

Я выполняю некоторые тестирования службы с помощью restassured и огурца, и они работают нормально локально, только используя тест Maven.Почему тест Maven не работает после mvn clean, если я не запускаю обновление mvn?

Проблема в том, что если я запустил Maven clean, тогда я должен запустить обновление Maven или он не будет работать (говорит, что он не может найти мои файлы функций Cucumber). Для справки он говорит:

No features found at [classpath:classpath/classpath] 

Это не будет большой проблемой, за исключением мне нужно, чтобы это проходит через бамбук, где я не могу назвать обновление Maven.

Так что мне нужно выяснить, что не так с моей POM, чтобы начать эту проблему, или как я могу запустить обновление Maven через переменные целей/среды.

POM довольно прост, имеет только необходимые зависимости/отчетность. Билд часть POM выглядит следующим образом:

<build> 
    <finalName>Test</finalName> 
    <directory>target</directory> 
    <outputDirectory>target/classes</outputDirectory> 
    <testOutputDirectory>target/test-classes</testOutputDirectory> 
    <sourceDirectory>src/main/java</sourceDirectory> 
    <testSourceDirectory>src/test/java</testSourceDirectory> 
    <resources> 
     <resource> 
      <directory>src/test/resources</directory> 
     </resource> 
    </resources> 
</build> 

Это все в Java 8, используя Eclipse в качестве IDE.

ответ

0

Я бы не указывать ничего в разделе сборки в моем ПОМ и вместо того, чтобы использовать значения по умолчанию.

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

Бегун может, например, жить в пакете se/thinkcode/tage Как и в каталоге:

./test/java/se/thinkcode/tage 

Это означает, что функция файлы должны жить в каталоге:

./test/resources/se/thinkcode/tage 

Это позволило бы мне чтобы минимизировать конфигурацию в бегуне. Я обычно использую бегунов, что выглядит следующим образом:

package se.thinkcode.tage; 

import cucumber.api.junit.Cucumber; 
import org.junit.runner.RunWith; 

@RunWith(Cucumber.class) 
public class RunCukesTest { 
} 

Это наименьшая конфигурация возможна, если вы хотите запустить Огурцы с помощью JUnit из Maven.

Это даже меньше, что пример поставляется огурца команды: https://github.com/cucumber/cucumber-java-skeleton

+0

Спасибо за совет! В настоящее время у меня есть все тестовые/функциональные файлы в одном пакете. Я подумал, что это самый простой способ заставить его работать. Я должен буду сделать этот снимок завтра. Если это сработает, я с радостью сделаю это правильным. – canpan14

+0

Просто отметив, что это закончилось для меня работой! Еще раз спасибо. – canpan14

0

Похоже, что определение свойств/клея в опциях огурца исправлено. Я действительно верю, что есть лучший вариант.

я добавил следующие варианты огурца:

features ="src/test/java", 
    glue = "packagename", 
Смежные вопросы