【问题标题】:Dynamic method calling of a JUNIT classJUNIT 类的动态方法调用
【发布时间】:2016-01-21 09:57:44
【问题描述】:

我有一个 Excel 表,其中包含测试用例名称和一些与之相关的值 例如:TestCase2 Value2,TestCase1 Value1。

我有一个 Junit 类,其测试方法(TestCase1(),TestCase2())与我在 Excel 表中的名称相同 所以当我运行我的 Junit 类时,我希望测试方法按照它们在 excel 文件中提到的方式连续执行,因为在这种情况下 testcase2 应该在 testcase1 之前执行。

【问题讨论】:

  • 所以您想使用基于某些输入的名称构建一个测试套件......
  • 您为什么要为此使用 Excel 表格?您希望某些用户可以使用测试吗?如果是这种情况,您可以考虑 FitNesse。
  • 是的,彼得,测试用例方法名称将来自 excel 表,它们应该按照提到的方式连续执行

标签: java excel dynamic junit testng


【解决方案1】:

方法一: 使用 Excel 构建和启动命令行,以及 Excel/windows 功能(VBscript、...)。

启动junit测试:

java org.junit.runner.JUnitCore [测试类名]

看到: How to run JUnit test cases from the command line

请注意,您可以启动一个类,而不是一个特定的方法。

具体方法见:Run single test from a JUnit class using command-line

方法的顺序见下文。

但是,如何获得和利用结果是另一回事。

方法2(首选):从Java控制一切:

使用适当的库读取 excel 文件:

How to read and write excel file in java

或者,将其更改为 csv 或 OpenOffice (odf),并与其他库一起阅读。

迭代,并通过自反性按名称启动每个方法:

getMethodInvoke

看到:How do I invoke a Java method when given the method name as a string?

测试顺序:

在课前设置:

@FixMethodOrder(MethodSorters.NAME_ASCENDING)

然后你的测试将按照词法顺序执行

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 2012-10-28
    • 2010-09-20
    • 2014-07-12
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    相关资源
    最近更新 更多