Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
TAEF, bir testin bilgisayarın yeniden başlatılmasına neden olabileceğini veya gerekli kılacağını belirtmesine olanak tanır. Bu özellik, iki ila üç bileşenden oluşur: testi yeniden başlatmayı gerektirebilecek veya başlatabilecek şekilde işaretlemek için meta veriler, TAEF'den bir yeniden başlatma gerçekleştirmesini istemek veya yaklaşan bir testin başlattığı yeniden başlatmayı TAEF'ye bildirmek için bir API ve yerel olarak çalıştırıldığında bu testleri yürütmeyi kabul etmek için bir komut seçeneği.
Davranış
Bilgisayarı yeniden başlatmanın belirli semantiği, TAEF yürütme modelinde bazı değişiklikler yapılmasını, kurulum ve temizleme işlemlerinin garantilerini ve başarı ve başarısızlık davranışını gerektirir.
- Yeniden başlatma işlevi, yalnızca uygun meta veri içeren testler için geçerlidir, fikstürler (kurulum ve temizleme) için değil.
- Yeniden Başlatma API'si uygun işaretlemeye sahip bir test dışında herhangi bir yerden kullanılırsa işlev döndürülmeyecektir. Bunun yerine, TAEF test işlemini sonlandırıyor. Bu, testin yazılma biçimindeki bir hatayı temsil eder ve test kodunun düzeltilmesi gerekir.
- Test fikstürleri yeniden başlatma sınırında çalıştırılmaz. Bu, yeniden başlatmadan önce (testin yeniden başlatmayı başlatmasına veya TAEF'nin yeniden başlatma talebinde bulunmasına bakılmaksızın) sonlandırma işlemlerinin yapılmayacağı ve yeniden başlatmadan sonra kurulum işlemlerinin yapılmayacağı anlamına gelir.
- Test bitene kadar, yeniden başlatma bildirimi yaptığınızda veya talepte bulunduğunuzda, günlük kaydı (ve dolayısıyla günlük hataları) yoksayılacaktır.
Meta veriler
Yeniden Başlatma API'lerinin kullanımını etkinleştirmek için RebootPossible meta verileri "true" olarak ayarlanarak bir test işaretlenmelidir. Bu meta veriler meta veri devralmayla ilgili olağan kurallara uyar, bu nedenle sınıfınızdaki herhangi bir test yeniden başlatılabilirse sınıf düzeyinde belirtilebilir (ancak yeniden başlatmanın ağır ağırlığı göz önünde bulundurulduğunda, hangi testin yeniden başlatmayı başlatabileceği ve başlatamayacağı konusunda açık kararlar verilmesi önerilir). Meta veri belirtimi örnekleri için C++ dilinde Yazma Testleri ve C# dilinde Yazma Testleri belgelerine bakın.
API
Makine yeniden başlatmalarını işlemek için iki ana işlev vardır:
- Reboot(Option), TAEF'nin test makinesini yeniden başlatmasını ister.
- RebootCustom(Option), TAEF'ye testin test makinesinin yeniden başlatılmasına neden olacağını bildirir. Bu API, sistem kilitlenmeyi de destekler. TAEF, API döndükten sonra ilgili verilerin temizlenmesini sağlar.
Option parametresi, aşağıdakilerden biri olan özgeçmiş davranışını belirtir:
- Yeniden çalıştırma, yeniden başlatma gerçekleştikten sonra TAEF'nin aynı testi yeniden yürütmesine neden olur
- Yeniden başlatma gerçekleştikten sonra TAEF'nin sonraki testi yürütmesine neden olarak devam edin
Yerli
Interruption.h üst bilgisini ekleyerek ve WEX::TestExecution::Interruption ad alanındaki fonksiyonları çağırarak Reboot API'lerine erişin. Olası dört çağrı şunlardır:
using namespace WEX::TestExecution;
Interruption::Reboot(RebootOption::Rerun);
Interruption::Reboot(RebootOption::Continue);
Interruption::RebootCustom(RebootOption::Rerun);
Interruption::RebootCustom(RebootOption::Continue);
Yönetilen
Interruption statik sınıfındaki iki yöntemden birini Te.Managed.dll içinde bulunan WEX.TestExecution ad alanında çağırın.
using WEX.TestExecution;
Interruption.Reboot(RebootOption.Rerun);
Interruption.Reboot(RebootOption.Continue);
Interruption.RebootCustom(RebootOption.Rerun);
Interruption.RebootCustom(RebootOption.Continue);
Komut İstemi Kullanımı
Bu özellik için ideal kullanım, Makineler Arası Yürütme ile veya WTT aracılığıyla yeniden başlatılacak TAEF testleri çalıştırmaktır. Bu durumlarda TAEF, iş akışınızı kesintiye uğratmaması gerektiğinden, yürütmeyi örtük olarak* yeniden başlatmayı etkinleştirir. Yeniden başlatma testlerini yerel makinede el ile yürütüyorsanız veya TAEF'in durumunu önbelleğe almak için kullandığı varsayılan yolu geçersiz kılmanız gerekiyorsa, testleri yeniden başlatmayı açıkça kabul etmeniz gerekir. Bunu yapmazsanız, yeniden başlatma testi engellendi olarak işaretlenir. Yerel olarak yürütülürken yeniden başlatma testlerini etkinleştirmek için aşağıdaki komut bağımsız değişkenini kullanın:
Te.exe /rebootStateFile:MyRestartFile.xml
TAEF, durumunu (hangi testlerin zaten yürütüldüğü, tüm TAEF komutu veya ortam seçenekleri vb.) depolamak için belirtilen dosyayı oluşturur ve yeniden başlatmadan sonra kaldığı yerden devam eder. TAEF, yeniden başlatmadan sonra makine açıldığında kendisini yeniden çalıştırır.
TaEF'in yeniden başlatmadan sonra testleri sürdürmek için bağımlı olduğu bir özelliğin kaldırılması nedeniyle arm makinelerinde bu seçeneğin çalışmadığını unutmayın (RunOnce anahtarı).
* Uyumsuz yürütme özellikleri (şu anda Paralel ve Test Modları) kullanmadığınız sürece.
Sık Sorulan Sorular
Yeniden Çalıştır'ı seçersem testin ilk kez mi yoksa yeniden başlatmadan sonra mı çağrıldığını anlamanın bir yolu var mı?
TAEF bunu başarmak için herhangi bir işlev sağlamaz. Yeniden çalıştırma seçeneğinin amacı, makinenin durumuna bağlı olarak belirsiz sayıda yeniden başlatma gerektirebilecek testler yazmanızı sağlamaktır (windows update'i tamamlamaya çalıştırma gibi). Görevleri yeniden başlatmadan önce/sonra sıralı olarak gerçekleşen ayrı test işlemlerine ayırmak için bir ExecutionGroup ve devam seçeneğini kullanmayı göz önünde bulundurun.
Hangi TAEF test türleri desteklenir?
Bu özellik yerel, yönetilen ve betik testleri için kullanılabilir.