首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Guava设置PITest

为Guava设置PITest
EN

Stack Overflow用户
提问于 2016-12-07 04:27:57
回答 1查看 294关注 0票数 1

我正在尝试为Guava (http://pitest.org/)设置PIT以进行突变充分性测试,但在尝试运行它时遇到以下错误。这是我得到的错误:

代码语言:javascript
复制
12:19:47 PM PIT >> INFO : Sending 32 test classes to minion
12:19:47 PM PIT >> INFO : Sent tests to minion
12:19:48 PM PIT >> INFO : MINION : 12:19:48 PM PIT >> INFO : Checking environment

12:19:48 PM PIT >> INFO : MINION : 12:19:48 PM PIT >> INFO : Found  40 tests

12:19:48 PM PIT >> INFO : MINION : 12:19:48 PM PIT >> INFO : Dependency analysis reduced number of potential tests by 0

12:19:48 PM PIT >> INFO : MINION : 12:19:48 PM PIT >> INFO : 40 tests received

12:19:53 PM PIT >> INFO : MINION : Dec 06, 2016 12:19:53 PM java.util.prefs.WindowsPreferences <init>
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.

12:19:54 PM PIT >> INFO : MINION : 12:19:54 PM PIT >> WARNING : More threads at end of test (7) testCantRemove(com.google.common.collect.AbstractIteratorTest_gwt) than start. (5)


/
-
|
/
\
-12:19:54 PM PIT >> WARNING : Description [testClass=com.google.common.collect.AbstractIteratorTest_gwt, name=testCantRemove(com.google.common.collect.AbstractIteratorTest_gwt)] did not pass without mutation.
12:19:54 PM PIT >> WARNING : Description [testClass=com.google.common.collect.AbstractIteratorTest_gwt, name=testDefaultBehaviorOfNextAndHasNext(com.google.common.collect.AbstractIteratorTest_gwt)] did not pass without mutation.
12:19:54 PM PIT >> WARNING : Description [testClass=com.google.common.collect.AbstractIteratorTest_gwt, name=testDefaultBehaviorOfPeek(com.google.common.collect.AbstractIteratorTest_gwt)] did not pass without mutation.

/12:19:54 PM PIT >> WARNING : Description [testClass=com.google.common.collect.AbstractIteratorTest_gwt, name=testDefaultBehaviorOfPeekForEmptyIteration(com.google.common.collect.AbstractIteratorTest_gwt)] did not pass without mutation.
12:19:54 PM PIT >> WARNING : Description [testClass=com.google.common.collect.AbstractIteratorTest_gwt, name=testException(com.google.common.collect.AbstractIteratorTest_gwt)] did not pass without mutation.
12:19:54 PM PIT >> WARNING : Description [testClass=com.google.common.collect.AbstractIteratorTest_gwt, name=testExceptionAfterEndOfData(com.google.common.collect.AbstractIteratorTest_gwt)] did not pass without mutation.

\12:19:54 PM PIT >> WARNING : Description [testClass=com.google.common.collect.AbstractIteratorTest_gwt, name=testReentrantHasNext(com.google.common.collect.AbstractIteratorTest_gwt)] did not pass without mutation.
12:19:54 PM PIT >> WARNING : Description [testClass=com.google.common.collect.AbstractIteratorTest_gwt, name=testSneakyThrow(com.google.common.collect.AbstractIteratorTest_gwt)] did not pass without mutation.

/
|
/
|
/12:19:54 PM PIT >> WARNING : Description [testClass=com.google.common.collect.AbstractMapEntryTest_gwt, name=testEquals(com.google.common.collect.AbstractMapEntryTest_gwt)] did not pass without mutation.
12:19:54 PM PIT >> WARNING : Description [testClass=com.google.common.collect.AbstractMapEntryTest_gwt, name=testEqualsNull(com.google.common.collect.AbstractMapEntryTest_gwt)] did not pass without mutation.
12:19:54 PM PIT >> WARNING : Description [testClass=com.google.common.collect.AbstractMapEntryTest_gwt, name=testHashCode(com.google.common.collect.AbstractMapEntryTest_gwt)] did not pass without mutation.
12:19:54 PM PIT >> WARNING : Description [testClass=com.google.common.collect.AbstractMapEntryTest_gwt, name=testHashCodeNull(com.google.common.collect.AbstractMapEntryTest_gwt)] did not pass without mutation.
12:19:54 PM PIT >> WARNING : Description [testClass=com.google.common.collect.AbstractMapEntryTest_gwt, name=testToString(com.google.common.collect.AbstractMapEntryTest_gwt)] did not pass without mutation.
12:19:54 PM PIT >> WARNING : Description [testClass=com.google.common.collect.AbstractMapEntryTest_gwt, name=testToStringNull(com.google.common.collect.AbstractMapEntryTest_gwt)] did not pass without mutation.

|12:19:54 PM PIT >> WARNING : Description [testClass=com.google.common.collect.AbstractSequentialIteratorTest_gwt, name=testBroken(com.google.common.collect.AbstractSequentialIteratorTest_gwt)] did not pass without mutation.
12:19:54 PM PIT >> WARNING : Description [testClass=com.google.common.collect.AbstractSequentialIteratorTest_gwt, name=testDoubler(com.google.common.collect.AbstractSequentialIteratorTest_gwt)] did not pass without mutation.
12:19:54 PM PIT >> WARNING : Description [testClass=com.google.common.collect.AbstractSequentialIteratorTest_gwt, name=testEmpty(com.google.common.collect.AbstractSequentialIteratorTest_gwt)] did not pass without mutation.
12:19:54 PM PIT >> WARNING : Description [testClass=com.google.common.collect.AbstractSequentialIteratorTest_gwt, name=testSampleCode(com.google.common.collect.AbstractSequentialIteratorTest_gwt)] did not pass without mutation.
12:19:54 PM PIT >> INFO : Calculated coverage in 9 seconds.
Exception in thread "main" org.pitest.help.PitHelpError: All tests did not pass without mutation when calculating line coverage. Mutation testing requires a green suite.
See http://pitest.org for more details.
    at org.pitest.coverage.execute.DefaultCoverageGenerator.verifyBuildSuitableForMutationTesting(DefaultCoverageGenerator.java:109)
    at org.pitest.coverage.execute.DefaultCoverageGenerator.calculateCoverage(DefaultCoverageGenerator.java:94)
    at org.pitest.coverage.execute.DefaultCoverageGenerator.calculateCoverage(DefaultCoverageGenerator.java:49)
    at org.pitest.mutationtest.tooling.MutationCoverage.runReport(MutationCoverage.java:110)
    at org.pitest.mutationtest.tooling.EntryPoint.execute(EntryPoint.java:103)
    at org.pitest.mutationtest.tooling.EntryPoint.execute(EntryPoint.java:45)
    at org.pitest.mutationtest.commandline.MutationCoverageReport.runReport(MutationCoverageReport.java:76)
    at org.pitest.mutationtest.commandline.MutationCoverageReport.main(MutationCoverageReport.java:45)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

基本上,要么是PIT没有检测到测试,要么是PIT的测试运行不正常,所有测试都失败了。我读了这篇文章:JUnit tests pass but PIT says the suite isn't green和我认为“你的代码库是否包含可变静态状态?(例如在单例中)”是问题所在,但我不知道如何解决它。在测试套件有一些隐藏的顺序依赖关系的情况下,如何才能让我可以在它上面运行PIT?或者测试套件只是与PIT不兼容?

EN

回答 1

Stack Overflow用户

发布于 2017-01-05 19:02:05

问题很可能是PIT正在运行GWT测试用例-这些不是通常意义上的单元测试,因为代码不是在JVM中运行的,而是被转换为Java脚本并在浏览器中运行。

PIT只适用于在与测试相同的JVM中运行的代码。

如果您排除了芭乐gwt测试用例,那么PIT会更好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41004252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档