每个(不同的)输入数据的代码覆盖率
Code Coverage for every (different) input data
我想获取一些简单测试的代码覆盖率,该测试从 DataProvider 获取数据。我需要 运行 通过测试的每个数据的覆盖率结果。例如:
if (value != 0)
{
//do something
}
if (value == 100) {
//do something
}
//else do something
如果测试从 DataProvider 获得一个类似于 0 的值,它永远不会到达代码的第一部分,因此覆盖率结果与值为 100 时不同。
那么我如何获得每个数据的覆盖率结果?我正在使用带有 maven 插件的 jacoco...
如果有可能 运行 使用 maven 进行子测试,这可能会有所帮助...目前我正在这样做:
mvn test
但我想做这样的事情:
mvn -Dtest=myTestClass#myTest#myData (#myData of course not working)
但是 IntelliJ 使用此参数来指定子测试:
java.exe -ea [.......] @name0 //-> to run the test only with first Data
java.exe -ea [.......] @name1 //-> to run the test only with second Data
etc.
提前感谢您的帮助!
代码覆盖率是自动化测试覆盖的代码百分比。代码覆盖率测量只是确定代码主体中的哪些语句已通过测试执行 运行,哪些语句没有。
https://confluence.atlassian.com/clover/about-code-coverage-71599496.html
您可以从命令行传递参数,然后 运行 您的测试。
你可以像这样在命令行上传递它们
mvn test -Dtest=<ClassName> -Dvalue=100
然后在您的测试中使用
访问它们
int value=Integer.valueOf(System.getProperty("value"));
我想获取一些简单测试的代码覆盖率,该测试从 DataProvider 获取数据。我需要 运行 通过测试的每个数据的覆盖率结果。例如:
if (value != 0)
{
//do something
}
if (value == 100) {
//do something
}
//else do something
如果测试从 DataProvider 获得一个类似于 0 的值,它永远不会到达代码的第一部分,因此覆盖率结果与值为 100 时不同。 那么我如何获得每个数据的覆盖率结果?我正在使用带有 maven 插件的 jacoco...
如果有可能 运行 使用 maven 进行子测试,这可能会有所帮助...目前我正在这样做:
mvn test
但我想做这样的事情:
mvn -Dtest=myTestClass#myTest#myData (#myData of course not working)
但是 IntelliJ 使用此参数来指定子测试:
java.exe -ea [.......] @name0 //-> to run the test only with first Data
java.exe -ea [.......] @name1 //-> to run the test only with second Data
etc.
提前感谢您的帮助!
代码覆盖率是自动化测试覆盖的代码百分比。代码覆盖率测量只是确定代码主体中的哪些语句已通过测试执行 运行,哪些语句没有。 https://confluence.atlassian.com/clover/about-code-coverage-71599496.html
您可以从命令行传递参数,然后 运行 您的测试。 你可以像这样在命令行上传递它们
mvn test -Dtest=<ClassName> -Dvalue=100
然后在您的测试中使用
访问它们int value=Integer.valueOf(System.getProperty("value"));