ScalaTest özellikleri arasında bağımlılık olabilir mi? Bir sınama başarısız olursa, buna bağlı tüm sınamalar atlanır?TestNg dependsOnMethods ek açıklamasına benzer bir scalaTest mekanizması var
cevap
Hazır bir çözüm hakkında bilmiyorum. Ancak kendi Armatürlerinizi oldukça kolayca yazabilirsiniz.
bakın Böyle bir fikstür örneğin ben bu özellik eklemek vermedi pending
çağrıları ile ilkinden sonra tüm test infaz yerini alabilir Suite trait
ait javadoc içinde "istiflenebilir fikstürü özellikleri Oluşturma" TestNG, çünkü zamanını haklı çıkarmak için hiçbir zorlayıcı kullanım vakasına sahip olmadım. O zamandan beri bazı kullanım durumları topladım ve ScalaTest'in sonraki sürümüne bir özellik ekliyorum. Ancak, bağımlı olmayan önkoşullara dayanan bir testi "iptal etme" yönteminin bir yolu olmayacaktır.
Bu arada yapabileceğiniz şey, eğer şartlar yerine getirildiyse, sadece teste kayıt yaptırmak ya da çıktıyı görmeyi tercih ederseniz bunları yoksayılacak şekilde kaydetmek için Scala kullanmanız yeterlidir. koşul testi inşaat anda kesin karşılanacak Bu yalnızca çalışacaktır
if (databaseIsAvailable) {
it("should do something that requires the database") {
// ...
}
it ("should do something else that requires the database") {
}
}
: Eğer Spec kullanıyorsanız, bunun gibi bir şey olmazdı. Örneğin, veritabanının bir BeforeAll yöntemi ile başlatılması gerekiyorsa, belki de, her bir testin içinde kontrol yapmalısınız. Ve bu durumda, beklemede olduğunu söyleyebilirdiniz. gibi bir şey:
it("should do something that requires the database") {
if (!databaseIsAvailable) pending
// ...
}
it("should do something else that requires the database") {
if (!databaseIsAvailable) pending
// ...
}
Scaladocu okuduktan sonra, önkoşulları nasıl belirlediğimi hala göremiyorum. Tam olarak, bir test başarılı olduğunda bir koşulu nasıl ayarlayabilirim ki diğer süitler buna referans verebilir? – user44242
Bu özellik için herhangi bir referans bulamadım, herhangi bir şans, bu uygulandı mı? –
Bence Bill'in atıf yaptığı özellik “varsayım (Boolean)” dır. Varsayım başarısız olursa, bir test iptal edildi olarak gösterilir. Bu ScalaTest 2.2.1 ile. – akauppi
İşte herhangi bir test başarısız olursa test paketi tüm test başarısız kılan bir Scala özelliktir.
(öneri için teşekkürler, bu soruya başka bir yanıt gönderildi Jens Schauder().)
Artıları: Basit anlaşılır testi bağımlılıkları.
Eksiler: Çok özelleştirilemez.
Otomatik tarayıcı testlerim için kullanıyorum. Bir şey başarısız olursa, genellikle "karışıklık" durumunda olduğundan GUI ile etkileşime devam etmenin bir anlamı yoktur.
Lisans: Genel etki alanı (Creative Common'ın CC0), veya (sizin seçeceğiniz) MIT lisansı.
import org.scalatest.{Suite, SuiteMixin}
import scala.util.control.NonFatal
/**
* If one test fails, then this traits cancels all remaining tests.
*/
trait CancelAllOnFirstFailure extends SuiteMixin {
self: Suite =>
private var anyFailure = false
abstract override def withFixture(test: NoArgTest) {
if (anyFailure) {
cancel
}
else try {
super.withFixture(test)
}
catch {
case ex: TestPendingException =>
throw ex
case NonFatal(t: Throwable) =>
anyFailure = true
throw t
}
}
}
İlk hatadan sonra kalan testleri iptal etmek için özellik org.scalatest.CancelAfterFailure
kullanabilirsiniz: test önemli kurallardan
import org.scalatest._
class MySpec extends FunSuite with CancelAfterFailure {
test("successfull test") {
succeed
}
test("failed test") {
assert(1 == 0)
}
test("this test and all others will be cancelled") {
// ...
}
}
- 1. TestNG farklı sınıftan bağımsız değişkenler
- 2. ScalaTest
- 3. ScalaTest
- 4. ScalaTest
- 5. ScalaTest
- 6. ScalaTest
- 7. Easymock scalatest
- 8. scalatest: object scalatest, org paketinin üyesi değil
- 9. ScalaTest ve Maven: Başlarken
- 10. SetUp yönteminde bir TestNG veri sağlayıcı parametresi var mı?
- 11. Java'da pyparsing'e benzer bir kitaplık var mı?
- 12. Javascript'te gsub'a benzer bir şey var mı?
- 13. Ben buna benzer bir ActiveRecord sınıf var
- 14. Java'da WebClient.DownloadString'e benzer bir şey var mı?
- 15. xwindow'un pano mekanizması
- 16. regexp_like benzer işlev var mı?
- 17. Birden çok sınama durumu içeren Scalatest veya specs2
- 18. TestNG Gruplara kestirmeden önce
- 19. ScalaTest ve Spock karşılaştırması
- 20. Dize, ScalaTest Matchers
- 21. Sbt, ScalaTest testlerini çalıştırmayacaktır
- 22. Play Framework + ScalaTest + ScalaCheck
- 23. Scalatest testim neden derlenmiyor?
- 24. TestNG: @ Tüm yöntemleri yürüten sınıf seviyesinde test
- 25. Hızlı iş parçacığı iletişim mekanizması
- 26. Ruby Mekanizması: Bağlantıyı Takip Et
- 27. Mekanizması ile ilgili hata kodu
- 28. ScalaTest ile JUnit @Rule kullanma (ör. TemporaryFolder)
- 29. TestNG, çalışma modu paralel = "method"
- 30. TestNG beklenenExceptionsMessageRegExp ve harici iletileri
One geçerli: Testler birbirlerine bağımlı olmamalıdır. (ScalaTest'te bağımlılıkların olup olmadığı konusunda hiçbir fikriniz yok) – agilesteel
Bunlar yapmamalı, ancak bazen bir testin kurulumu çok pahalı olduğundan bunu gerçekten önleyemezsiniz. Diğer zamanlarda dış sistemlerde, üzerinde anlaşıldığı gibi davranmalarını sağlamak için test ediyorsunuz. Bir ilk testin test edilmesi, bir sistemin kullanılabilirliğini bozarsa, ayrıntıları test etmeye gerek yoktur. –
Muhtemelen "ünite testi" nin önemli bir kuralıdır, ancak bağımlı testler, bir dizi nedenden ötürü (pahalı durumu yeniden kullanmak, doğru raporlama yapmak, alaylardan kaçınmak, vb ...) işlevsel testler için çok yararlıdır. –