我的代码中有两种类型的测试,以 UnitTest 和 IntegrationTest 结尾。当然,有一些遗留的 JUnit 4 测试和应该用 JUnit 5 编写的新测试。
我想要的是:
可以从 IDE (IntelliJ IDEA) 运行的 UnitTestSuite 和 IntegrationTestSuit 类,每个类都有以类名结尾的测试过滤器。此外,我希望两个不同的 gradle 任务各自运行自己的一组测试(理想情况下基于套装,或者至少基于类名)。
我试过的:
这个测试套件在 IDE 中运行良好,据我所知,它应该同时运行 JUnit 4 和 JUnit 5 测试。但是,这种方法似乎更像是一种解决方法,而不是实际的套件支持。
@RunWith(JUnitPlatform.class)
@IncludeClassNamePatterns({ "^.*UnitTest$" })
public class UnitTestSuite {
}
Run Code Online (Sandbox Code Playgroud)
我也创建了这个 Gradle 任务,但它没有运行任何测试对我说:
WARNING: Ignoring test class using JUnitPlatform runner
test { Test t ->
useJUnitPlatform()
include "UnitTestSuite.class"
}
Run Code Online (Sandbox Code Playgroud)
那么是否有一个解决方案可以同时运行 JUnit 4 和 JUnit 5 测试,并从 IDE 和 Gradle 任务中按名称过滤(收集到套装中)?
我正在尝试测试出现问题时回滚事务的机制。我读了很多类似的主题,但没有任何帮助我。这是我尝试的:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "file:src/main/webapp/WEB-INF/rest-servlet.xml" })
@Transactional
public class TagDaoImplTest extends DatabaseTestCase {
private static final String FLAT_XML_DATASET = "FlatXmlDataSet.xml";
@Autowired
private TagDao tagDao;
@Autowired
private SessionFactory sessionFactory;
@Before
public void setUp() throws Exception {
DatabaseOperation.REFRESH.execute(getConnection(), getDataSet());
}
@Test
public void testAddWithRollback() throws Exception {
addWithRollback("testTagToAdd"); //i suppouse that we tried to add, but somthing went wrong and transaction was rolled back
final Tag testTagToAdd = tagDao.findByTag("testTagToAdd"); // so db must be without changes and i check this
assertNull(testTagToAdd); …Run Code Online (Sandbox Code Playgroud) 我有一个像这样的静态最终字段:
class SomeClass {
static final String CONST = "oldValue";
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试像这样在测试中更改该字段:
ReflectionTestUtils.setField(SomeClass.class, "CONST", "newValue");
Run Code Online (Sandbox Code Playgroud)
但它不起作用并说
java.lang.IllegalStateException: Could not access method: Can not set static final java.lang.String field
Run Code Online (Sandbox Code Playgroud) java ×3
spring ×2
gradle ×1
hibernate ×1
junit ×1
junit4 ×1
junit5 ×1
reflection ×1
transactions ×1