Я не добавил эту функцию TestNG, потому что в то время у меня не было убедительных вариантов использования, чтобы оправдать ее. С тех пор я собрал несколько вариантов использования и добавляю функцию в следующую версию ScalaTest для решения этой проблемы. Но это не будут зависимые тесты, это просто способ «отменить» тест, основанный на невыполненном предварительном условии.
В то же время вы можете просто использовать Scala if, если операторы регистрируют только тесты, если условие выполнено, или регистрировать их как игнорируемые, если вы предпочитаете, чтобы они выводились. Если вы используете Spec, он будет выглядеть примерно так:
if (databaseIsAvailable) {
it("should do something that requires the database") {
// ...
}
it ("should do something else that requires the database") {
}
}
Это будет работать только в том случае, если условие будет точно выполнено во время построения теста. Если, например, предполагается, что база данных запускается с помощью метода beforeAll, то вам необходимо выполнить проверку внутри каждого теста. И в этом случае вы могли бы сказать, что ожидается. Что-то вроде:
it("should do something that requires the database") {
if (!databaseIsAvailable) pending
// ...
}
it("should do something else that requires the database") {
if (!databaseIsAvailable) pending
// ...
}