gpt4 book ai didi

java - JUnit + DbUnit - 扩展 DatabaseTestCase 时未找到测试

转载 作者:行者123 更新时间:2023-12-02 03:28:35 24 4
gpt4 key购买 nike

我最近开始使用 DbUnit,我正在尝试编写一个非常简单的集成测试,只是为了填充一个包含 3 行的表。读取 DbUnit Getting Started Guide ,它告诉我创建一个数据集文件。我的数据集 xml 文件看起来完全像这样:

<dataset>
<notaFiscal cliente="Cliente 1" valor="26.5" data='2016-04-04'/>
<notaFiscal cliente="Cliente 2" valor="30.5" data='2016-05-01'/>
<notaFiscal cliente="Cliente 3" valor="28.2" data='2015-08-11'/>
</dataset>

然后,我必须创建一个扩展 DBTestCase 的测试类并实现我的测试方法(用 @Test 注释,就像任何其他 JUnit 测试用例一样)。我创建的类如下:

public class GerenciadorNFTest extends DBTestCase {

private GerenciadorNotaFiscal gerenciador = new GerenciadorNotaFiscal();

public GerenciadorNFTest(String name)
{
super( name );
// PBJDT is an abbreviation of PropertiesBasedJdbcDatabaseTester
// just for a better visualization
System.setProperty(PBJDT.DBUNIT_DRIVER_CLASS,
"org.postgresql.Driver" );
System.setProperty(PBJDT.DBUNIT_CONNECTION_URL,
"jdbc:postgresql://localhost:5432/dbunit" );
System.setProperty(PBJDT.DBUNIT_USERNAME, "postgres" );
System.setProperty(PBJDT.DBUNIT_PASSWORD, "123456" );
}


protected IDataSet getDataSet() throws Exception {
IDataSet dataSet = new FlatXmlDataSetBuilder().build(
new FileInputStream("notas_fiscais.xml"));
return dataSet;
}

@Test
public void geraPedido() {
Pedido p = new Pedido("Diogo", 26d, 5);
gerenciador.gera(p);
NotaFiscal notaFiscal = gerenciador.recupera("Diogo");
Assert.assertEquals(notaFiscal.getCliente(), "Diogo");
}

}

之后,我尝试运行测试用例,但出现以下错误:

junit.framework.AssertionFailedError: No tests found in teste.GerenciadorNFTest

at junit.framework.Assert.fail(Assert.java:57)
at junit.framework.TestCase.fail(TestCase.java:227)

如果我尝试删除 extend DBTestCase,JUnit 会识别测试用例并正常运行,但使用扩展后却无法正常运行。我尝试清理并重新编译,但没有成功。我还尝试在我使用的 IDE (Intellij Idea) 之外运行测试,但同样没有成功。

有人遇到过同样的问题吗?预先非常感谢您。任何帮助将不胜感激。

最佳答案

JUnit 3 与 4 运行程序的差异可能是原因(您没有提到 JUnit 和 dbUnit 版本,也没有提到管理它们的依赖关系)。并且不同的工具有不同的运行默认要求(例如Maven默认只运行类名后缀为“Test”的类作为测试)。

请注意,不需要扩展 dbUnit 类(我不需要),不这样做应该可以消除遇到的问题。您提到的该页面的下方有两个部分描述如何:

将两者结合起来是我多年来所做的 - 拥有自己的父测试类来处理常见的内容,然后 DI(或实例化)所需的 DBTestCase(通常是 PrepAndExpectedTestCase)。

关于java - JUnit + DbUnit - 扩展 DatabaseTestCase 时未找到测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38415338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com