将@InSequence
批注添加到测试中时出现错误:
java.lang.UnsupportedOperationException在
java.util.Collections $ UnmodifiableList $ 1.set(Collections.java:1412)
在java.util.Collections.sort(Collections.java:234)在
org.jboss.arquillian.junit.Arquillian.getChildren(Arquillian.java:71)
在
org.junit.runners.ParentRunner.getFilteredChildren(ParentRunner.java:426)
在
org.junit.runners.ParentRunner.getDescription(ParentRunner.java:351)
在org.junit.runners.Suite.describeChild(Suite.java:123)处
com.intellij.junit4.IdeaSuite.describeChild(IdeaSuite.java:68)位于
com.intellij.junit4.IdeaSuite.getChildren(IdeaSuite.java:85)在
org.junit.runners.ParentRunner.getFilteredChildren(ParentRunner.java:426)
在org.junit.runners.ParentRunner.filter(ParentRunner.java:379)处
org.junit.runner.manipulation.Filter.apply(Filter.java:97)在
org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:37)
当我运行不带此批注的测试时,一切正常。知道有什么问题吗?
最佳答案
问题出在JUnit中。我使用了4.12-beta-1版本,该版本以这种方法返回无法修改的列表:
public List<FrameworkMethod> getAnnotatedMethods(
Class<? extends Annotation> annotationClass) {
return Collections.unmodifiableList(getAnnotatedMembers(methodsForAnnotations, annotationClass, false));
}
类别
org.junit.runners.model.TestClass
。我降级到JUnit 4.11版本,所有测试都运行了,注释@InSequence没有问题。