Как инициализировать Spring AnnotationConfigApplicationContext внутри @BeforeTest в Testng? - PullRequest
1 голос
/ 10 апреля 2020

У меня есть комплект testng + spring с параллельной опцией, установленной на Tests. Я бы хотел, чтобы у каждого <test> был свой ApplicationContext. Таким образом, каждый поток <test> будет иметь свой собственный набор компонентов. Я могу инициализировать ApplicationContext, но компоненты не получают автосвязь, и я получаю исключение nullpointer, когда пытаюсь получить доступ к компоненту. Пожалуйста, найдите мой код ниже,

AppTest.class

@ComponentScan(basePackages = "org.comp.automation")
public class AppTest extends AbstractTestNGSpringContextTests{

    @BeforeTest
    public void intialise() throws Exception{
        ApplicationContext context = new AnnotationConfigApplicationContext(BeanTwo.class);
    }

    @Autowired
    public CommonBean commonBean;

    @Autowired
    public BeanTwo beanTwo;

    @Parameters(value={"param"})
    @Test
    public void shouldAnswerWithTrue(String param) {
        System.out.println(commonBean.STRING_CHECK);
        commonBean.createCommonBeanObject(param);
        System.out.println("Checking the bean values now...");
        assertTrue( true );

    }
}

CommonBean.class

@Component
public class CommonBean {

    public String commonBeanValue;
    public String STRING_CHECK = "Hello!!";

    public void createCommonBeanObject(String param){
        commonBeanValue = param;
    }

    public void printParamValue(){
        System.out.println(commonBeanValue);
    }

}

BeanTwo.class

@Component
public class BeanTwo{

public void printBeanTwo(){
        System.out.println("Bean Two!!");
    }

}

Может ли кто-нибудь помочь мне с этим и указать мне правильное направление?

...