2

我知道单元测试应该足够灵活,可以以不同的顺序运行。但是我有一种情况,我希望我的测试用例以特定的顺序运行。在这种情况下,我正在使用 playframework 2.3 的 fakeApplication 和 FakeRequest 测试我的控制器。尽管使用 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() {
            }
        });
    }
}

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

4

1 回答 1

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)
}
于 2015-02-19T16:52:00.467 回答