Qt QTest
ile gelir ve bazı belgeler vardır: örneğin, an official tutorial. Ancak, QTest
QTest
, birim sınamalarını ayrı yürütücüler olarak düzenlemenizi önerir. Bunun için özel bir makro var, bu da : QTEST_MAIN()
Dürüst olmak gerekirse, bu yaklaşımı gerçekten beğenmiyorum: Genel olarak, son değişikliklerin güvenliğini sağlamak için tüm testleri tek seferde çalıştırmak çok daha yararlıdır. Bir şey bozuldu. Bazen,, bazı testlerin maskelenmesi veya bazı bireysel testlerin yürütülmesi yararlıdır, ancak bu bir kural değildir, istisnadır.Qt: Birden çok sınama sınıfından birim sınamalarını çalıştır ve bunların tümünü çıkış olarak özetle
Tüm testleri tek seferde çalıştırmak istiyorum. Tamam, yazabilir benim böyle, ben diyelim ki, istediğiniz tüm testleri yürüten main()
kendi:
int main(int argc, char **argv)
{
int status = 0;
//-- run all tests
{
TestHTCodecISO14230 tc;
status |= QTest::qExec(&tc, argc, argv);
}
{
TestHTDataMsg tc;
status |= QTest::qExec(&tc, argc, argv);
}
return status;
}
Ve hepsi testler, ancak sorun tüm testlerin uygun özetini yok olmasıdır. De ki, yukarıdaki iki test için, iki ayrı özetleri vardır:
hata durumunda olmayan sıfır olacaktırstatus
döndü bakmasıyla yararlı, ama özetini varsa çok daha yararlı olacaktır olduğunu
********* Start testing of TestHTCodecISO14230 *********
Config: Using QtTest library 5.4.1, Qt 5.4.1 (i386-little_endian-ilp32 shared (dynamic) release build; by GCC 4.6.1)
PASS : TestHTCodecISO14230::initTestCase()
PASS : TestHTCodecISO14230::decode_summary()
PASS : TestHTCodecISO14230::encode()
PASS : TestHTCodecISO14230::decode_encoded()
PASS : TestHTCodecISO14230::cleanupTestCase()
Totals: 5 passed, 0 failed, 0 skipped, 0 blacklisted
********* Finished testing of TestHTCodecISO14230 *********
********* Start testing of TestHTDataMsg *********
Config: Using QtTest library 5.4.1, Qt 5.4.1 (i386-little_endian-ilp32 shared (dynamic) release build; by GCC 4.6.1)
PASS : TestHTDataMsg::initTestCase()
PASS : TestHTDataMsg::test1()
PASS : TestHTDataMsg::cleanupTestCase()
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted
********* Finished testing of TestHTDataMsg *********
yanı:
mümkün değildir benim gördüğüm itibaren
Totals: 8 passed, 0 failed, 0 skipped, 0 blacklisted
: qExec()
QTest
ad alanında sadece bir işlevdir: Ben programlı geçti sayısını almak için yol bulamıyorum, başarısız atlanır ve kara listeye testler Böylece, yürütdükten sonra bazı ek bilgi toplamak mümkün değildir.
Eh, kötü tasarım gibi görünüyor Bana göre
... ugh, çıkış dizesini ayrıştırmak mümkündür, ancak. Bir sınıf olarak QTest
yapmak çok daha iyi olur, daha sonra bunun örneğini oluşturur ve bazı test sınıflarını besler. Daha sonra, bir örnekten bazı ek bilgiler toplanabilir. Ya da belki bir şeyleri özledim.
Yani, soru şu: QTest
ile tüm birim test sınıflarının özet çıktılarına sahip olmak mümkün mü? Benim yorumunda yazdığı gibi
Sınıfınız TestHTCodecISO14230 ve TestHTDataMsg'lerini değil mi? Başarısız test sayılarını işlemek için neden onları genişletemiyorsunuz? – vahancho