@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没有问题。

10-01 08:14
查看更多