MethodSorter Name_Ascending未按顺序运行

时间:2015-02-19 13:42:05

标签: junit playframework junit-runner

我知道单元测试应该足够灵活,以便以不同的顺序运行。但我有一种情况,我希望我的测试用例按特定顺序运行。在这种情况下,我正在使用fakeAppwork和fetsRequest的playframework 2.3测试我的控制器。尽管使用FixMethodOrder将我的测试类注释为NAME_ASCENDING,但我的测试以随机顺序运行。

@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class JobTest {

    @Test
    public void _1_addJob() {
        running(fakeApplication(), new Runnable() {
            @Override
            public void run() {
            }
        });
    }

    @Test
    public void _2_editJob() {
        running(fakeApplication(), new Runnable() {
            @Override
            public void run() {
            }
        });
    }
}

请参阅下面的图表截图,其中交换测试订单而代码没有变化。 Test order 1 Test order 2

1 个答案:

答案 0 :(得分:0)

在sbt级别定义顺序,如下所示:

testGrouping <<= definedTests in Test map { tests =>
  tests.map { test =>
    import Tests._
    new Group(
      name = test.name,
      tests = Seq(test),
      runPolicy = InProcess)
  }.sortWith(_.name < _.name)
}