我需要以下测试
@runwith(cache, memory)
class CollectionA is -- this is a suite (aka folder)
class Cache { -- this is a sub-suite (aka folder)
@test testCache1() -- this is a method (aka file)
@test testCache2()
@test testCache3()
}
class RAM { -- this is a sub-suite (aka folder)
@test testRAM1()
@test testRAM2()
}
@test testIO()
@test testKeyboard()
@test testMouse()
@test testMonitor()
@test testPower()
@test testBoot()
请注意,只有 Cache 和 RAM 需要分组。层次结构有助于克服复杂性并在必要时单独运行相关测试,例如缓存子系统。问题是我使用@runwith 进行分组时,JUnit 会忽略除 RAM 和 Cache 集合之外的所有单个测试方法。在 JUnit 设计中似乎不能有兄弟文件和文件夹。官方分组示例中的注释也暗示了
@RunWith(Suite.class)
@Suite.SuiteClasses({
TestA.class,
TestA.class
})
public class FeatureTestSuite {
// the class remains empty,
// used only as a holder for the above annotations
// HEY!!! WHAT ABOUT MY @Tests HERE?
}
答案说,我是否需要将每一个测试都包装起来,例如testPower
放入他们的单色套装或扁平化套装 - 如果完全摆脱层次结构。
那么,JUnit 旨在禁止将单个文件(@test 方法)与文件夹(@runwith 套件)混合,这对吗?为什么?如何解决这个问题?可能有替代方案@runwith.Suite
吗?