Укажите расположение файла объекта в огурце

Я создал несколько этапов теста на огурец и небольшой тестовый пример на огурец [1], который я запускаю с помощью junit следующим образом:

@RunWith(Cucumber.class)

public class FuelCarTest {
    //executs cucumber steps in the class FuelCarSteps
}

Файлы объектов огурца теперь автоматически загружаются из пути к классам в src/main/resources/<package-name>/*.feature

Я хотел бы знать, как я могу сказать огурцу расположение моих файлов объектов, потому что он мне нужен, чтобы загрузить их из местоположения вне пути к классам (например, data //).

[1] http://thomassundberg.wordpress.com/2011/11/16/testing-a-web-service-with-soapui-junit-maven-and-cucumber/

5 ответов

Решение

Я нашел решение,

есть аннотация @Cucumber.Options, которая задает формат и расположение вывода отчета, а также позволяет указать местоположение для файлов объектов.

@Cucumber.Options(
    format = {
        "pretty",
        "html:target/cucumber-html-report",
        "json-pretty:target/cucumber- report.json"
    },
    features="features/"
)

Я поместил все файлы объектов в test/resources/features и добавил мое расположение файла с указанием пути к классу. Вот мой прогон огурца.

@RunWith(Cucumber.class)
@CucumberOptions(
    monochrome = true,
    features = "classpath:features",
    plugin = {"pretty", "html:target/cucumber-reports",
    "json:target/cucumber.json"
             }

)
public class MyTests 
{

}

Это выберет все файлы объектов в папке функций. Если вы хотите иметь подпапки, вы также можете добавить их, просто заменив строку, как показано ниже.

features = "classpath:features/DEV"

Если только один конкретный файл функции, он должен быть таким

features = "classpath:features/DEV/SmokeTests.feature"

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

 @RunWith(Cucumber.class)
 @CucumberOptions(features="src/Login.feature",
    format = {"pretty", "html:target/report/",
    "json:target/report/cucu_json_report.json",
    "junit:target/report/cucumber_junit_report.xml",}
     tags ={"@ra1, @ra2"})

Вы можете использовать @CucumberOptions вместо @Cucumber.Options

@RunWith(Cucumber.class)
@CucumberOptions(
    format = "pretty",
    tags = {"~@Ignore"},
    features = "src/test/resources/com/"  //refer to Feature file
)
public class CucumberIT {  }

Здесь ключевое слово feature для пути к вашей папке с файлами функций пример: папка с моими файлами функций, расположенная на рабочем столе

так что ключевое слово Feature Feature Feature="C:\Users\sanjay\Desktop\features"

@RunWith(Cucumber.class)
@CucumberOptions(
  features = "C:\\Users\\sanjay\\Desktop\\features"
  ,glue={"com.stepDefination"}
  ,monochrome = false,
    
    
    format = {"pretty", "html:target/Destination"} 
  
  )
public class TestRunner {

}

Другие вопросы по тегам