Как запустить тесты из пользовательского фляги внутри проекта maven? - PullRequest
0 голосов
/ 14 сентября 2018

Я создал пользовательский jar с хранилищем (MyRepo), моделью (MyClass) и некоторыми тестами (MyTests).

Это тестовый класс в моем пользовательском jar:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = MyApp.class)
public class MyTests{

private MockMvc mockMvc;

@Autowired
private WebApplicationContext context;

@Autowired
private MyRepo myRepo;

@Before
public void init() throws Exception {
    MockitoAnnotations.initMocks(this);
    mockMvc = MockMvcBuilders.webAppContextSetup(context).apply(springSecurity()).build();
}

И тесты в этом классе выглядят так:

@Test
@Transactional
@Rollback
public void test1() throws Exception {
    MyClass user = myRepo.find(ID);
    .....
    mockMvc.perform(post(myRequest)
                .contentType(CONTENT_TYPE)
                .content(user))
                .andExpect(status().is(MY_STATUS))
                .andExpect(content().contentType(CONTENT_TYPE))
                .andExpect(content().json(MY_RESPONSE.toString(), false));

}

Я добавил этот jar-файл в проект maven в качестве зависимости.

Можно ли как-то настроить и изменить класс MyTests или что-то внутри jar, чтобы я мог запускать эти тесты (MyTests) в тестовой части проекта maven, в которую я добавил этот jar как зависимость.Я хотел бы назвать эти тесты, например, так:

@Autowired
MyTests myTests;

.....
myTests.runAllTests();

Может кто-нибудь сказать мне, как сделать такую ​​вещь?

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

1 Ответ

0 голосов
/ 14 сентября 2018

Вы можете использовать:

public static void main(String[] args) throws Exception {                    
       JUnitCore.main(
         "TestCase1");            
}

ИЛИ

Дважды проверьте URL, чтобы увидеть, находится ли case.jar там, где вы заявляете.Также проверьте, есть ли класс TestCase1 в какой-либо упаковке.Например, если TestCase1 находится в пакете comp.lang.java и находится в папке comp / lang / java / корневого каталога case.jar, то вам нужно написать:

loader.loadClass("comp.lang.java.TestCase1");

пример:

import java.net.URL;
import java.net.URLClassLoader;
import junit.framework.TestResult;
import junit.textui.TestRunner;
public class MyTestRunner {
public static void main(String[] args) throws Exception{
URL url = new URL("file:///d:/case.jar");
URLClassLoader loader = new URLClassLoader(new URL[]{url});
loader.loadClass("TestCase1");
TestRunner runner = new TestRunner();
TestResult result = runner.start(new String[]{"TestCase1"});
System.out.println(result.toString());
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...