@RunWith(Parameterized.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
// @ActiveProfiles("h2-test") // <-- how to iterate over this?
html" target="_blank">public abstract class BaseTest {
@Autowired
private TestRepository test;
// to be used with Parameterized/Spring
private TestContextManager testContextManager;
public BaseTest(String profile) {
System.setProperty("spring.profiles.active", profile);
// TODO what now?
}
@Parameterized.Parameters
public static Collection<Object[]> data() {
Collection<Object[]> params = new ArrayList<>();
params.add(new Object[] {"h2-test" });
params.add(new Object[] {"mysql-test" });
return params;
}
@Before
public void setUp() throws Exception {
this.testContextManager = new TestContextManager(getClass());
this.testContextManager.prepareTestInstance(this);
// maybe I can spinup Spring here with my profile?
}
@Test
public void testRepository() {
Assert.assertTrue(test.exists("foo"))
}
我如何告诉Spring使用这些不同的概要文件运行每个测试?事实上,每个配置文件将与不同的数据源(内存中的h2、外部mysql、外部oracle、..)对话所以我的存储库/数据源必须重新初始化。
我知道我可以指定@ActiveProfiles(...)我甚至可以扩展BaseTest并覆盖ActiveProfile注释。虽然这会起作用,但我只显示了测试套件的一部分。我的许多测试类都是从BaseTest扩展而来的,我不想为每个类创建几个不同的profile-stub。目前正在工作,但很难看的解决方案:
如果使用Maven,实际上可以从命令行指定活动配置文件(如果需要,也可以指定env变量):
mvn clean test -Dspring.profiles.active=h2-test
使用参数化测试的方法在这种情况下可能不起作用,因为必须在Spring启动其上下文之前指定profile。在这种情况下,当您运行参数化集成测试时,在测试运行程序开始运行您的测试之前,上下文就已经启动了。此外,JUnit的参数化测试的发明还有其他原因(使用不同的数据系列运行单元测试)。
编辑:还有一件事--当您决定使用@runwith(Parameterized.class)
时,您将无法使用不同的运行程序。在许多情况下(如果不是全部,如果涉及到集成测试),您希望指定不同的运行程序,如springrunner.class
-使用参数化测试,您将无法实现这一点。
配置和运行本地单元测试 本地单元测试 本地单元测试用来执行那些对Android没有依赖或Android依赖容易mock的单元测试. 本地单元测试运行在自己电脑上,测试用例在本地虚拟机上编译运行,执行速度快. 本地单元测试写在app\/src\/test\/java目录下. 本地单元测试使用JUnit或TestNG测试框架. 使用的演示代码 这里使用Google官方开源的示例进行演示,地址:http
本文向大家介绍Spring Junit单元测试加载配置文件失败问题,包括了Spring Junit单元测试加载配置文件失败问题的使用技巧和注意事项,需要的朋友参考一下 JUnit是Java中最有名的单元测试框架,用于编写和运行可重复的测试,多数Java的开发环境都已经集成了JUnit作为单元测试的工具。好的单元测试能极大的提高开发效率和代码质量。 使用SpringJunit单元测试,通过@Cont
寻找在Springboot应用程序中配置多个配置文件特定属性文件的最佳方法。下面是一个例子: -资源 · --application.properties · · · · · --德夫 --application-dev.properties --ldap-dev.properties --Quartz-Dev.Prope
我声明了一些特定于Maven配置文件的属性。我的pom.xml的一部分: 当我通过IntelliJ IDEA 2016启动Junit测试时,我在使用“ci”Maven配置文件时遇到一些问题。我通过“Maven项目”面板激活我的配置文件,然后启动测试。问题是“my.properties.file”属性值等于“foo.xml”,而不是“bar.xml”。 我对命令行没有问题(我可以使用“-Pci”标志
一、JUnit 是什么? JUnit 是一个 Java 语言的回归测试框架(regression testing framework),由 Kent Beck 和 Erich Gamma 建立。 Junit 测试也是程序员测试,即所谓的白盒测试,它需要程序员知道被测试的代码如何完成功能,以及完成什么样的功能。 二、IDEA 的 开始JUnit测试 测试项:查询全部用户数据 junit测试方法: