Selenium в весенне-загрузочном приложении - проблема с электропроводкой
Я пытаюсь запустить тест на селен (выполненный через http://galenframework.com/) в приложении с весенней загрузкой. Проблема, с которой я сталкиваюсь, находится в части автопроводки. Я не могу автоматически связать класс AppDetails с моим классом Test из-за исключения NULLPOINTER.
Я получаю исключение nullpointer при попытке запустить тест самостоятельно (либо непосредственно из IntelliJ
или же mvn test -Dtest=TestClassName
метод)
Но я умею бегать (mvn spring-boot:run
) приложение, которое не требуется, хотя я пытался запустить приложение, чтобы убедиться, что значение из файла yaml (shirtuserurl) правильно читается.
Почему я использовал пружинные сапоги для селена?
Я хочу загрузить значения из файла Application.yml, так как вся система здесь настроена на использование файла yaml.
Вот классы.
Application.java класс
[D:\ рабочее место \ гален-тестер \ гален-тестер \ SRC \ главная \ Java \ ком \ рубашка \ библиотеки \ гален \ Application.java]
package com.shirt.library.galen;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public String getTestName() {
return "some name";
}
}
Тестовый класс
[D:\ рабочее место \ гален-тестер \ гален-тестер \ SRC \ тест \ Java \ ком \ \ рубашка библиотеки \ гален \ пользователь \UserTestUI.java]
package com.shirt.library.galen.user;
import com.shirt.library.galen.Application;
import com.shirt.library.galen.components.GalenTestConfig;
import com.shirt.library.galen.components.TestDevice;
import com.shirt.library.galen.models.AppDetails;
import com.galenframework.config.GalenConfig;
import com.galenframework.config.GalenProperty;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import org.testng.annotations.Test;
import java.io.IOException;
//@ActiveProfiles("test")
@RunWith(SpringRunner.class)
@SpringBootTest
@ContextConfiguration(classes = Application.class)
public class UserTestUI extends GalenTestConfig {
@Autowired
private AppDetails appDetails; <-- This comes as NULL
@Autowired
String getTestName;
@Test (dataProvider = "devices")
public void test_user_onDevice(TestDevice devices) throws IOException {
GalenConfig.getConfig().setProperty(GalenProperty.GALEN_RANGE_APPROXIMATION,"5");
System.out.println("Full URL : " + appDetails.getFullURL()); <----- NULLPOINTER exception here
loadAppInBrowser("user");
loginAuthWithCredentials();
CheckLayout(devices);
}
Класс AppDetails
[D:\ рабочее место \ гален-тестер \ Гален-Обще \ SRC \ главная \ Java \ ком \ \ рубашка библиотеки \ гален \ модели \AppDetails.java]
package com.shirt.library.galen.models;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class AppDetails {
@Value("${shirtuserurl}")
private String fullURL;
//@Bean
public String getFullURL() {
return fullURL;
}
}
Я пытаюсь автоматически связать @Component под src\main\java\com\shirt... с src\test\java\com\shirt, это проблема?
Дайте мне знать, если у кого-нибудь есть идеи по этому поводу.
Замечания:
Я использую весеннюю загрузку версии 1.5.10. ВЫПУСК
1 ответ
Попробуйте использовать эти аннотации:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = Application.class)
@WebAppConfiguration