2010-07-27 27 views
9

Kısa bir süre önce py.test en uygun olmayan çerçeveye geçen bir projede çalışıyorum. Testlerimi Eclipse'den aradım, böylece hata ayıklayıcısını kullanabilirim (örneğin, bir test hatasının nasıl geliştiğini analiz etmek için kesme noktaları yerleştirerek). Şimdi bu artık mümkün değil, çünkü testleri yapmanın tek yolu komut satırı kara kutusu ile.Python'dan py.test nasıl kullanılır?

Python içinden py.test'i kullanmanın bir yolu var mı, böylece IDE'den çıkmak zorunda kalmayacaksınız? Testler elbette ayrı bir süreçte çalıştırılmamalıdır.

cevap

18

, oldukça basit:

import py 
py.test.cmdline.main(args) 

Sonra bu modülü çalıştırmak ve ya entegre hata ayıklayıcı ile başlatabilirsiniz. o py.test doğrudan entegrasyonu vardır Belki pycharm için bir deneyin verebilir

args_str = "-k test_myfavorite" 
py.test.cmdline.main(args_str.split(" ")) 
1

Eclipse ile denemedim, ancak bir related question numaralı belgede önerildiği gibi, --pdb komut satırı seçeneğini py.test ile kullanmak mümkündür. Belki tutulmayı bu şekilde yapılandırabiliriz. Ancak, import pdb;pdb.set_trace() standardının çağrılması, doğrudan hata ayıklayıcısını aramayacaktır. İlk olarak, hata ayıklayıcısını etkinleştirecek bir hata verir. Bu, işleri farklı şekilde çalıştırabilir veya üretmeyebilir. Ben Artık kendi soruya cevap düşünüyorum

+0

sayesinde IDE gerekmiyorsa sadece py.test --pdb çalıştırabilir, ben '--pdb' anahtarı farkındaydı. Bence bu durumda pdb, Eclipse için çalışmayacak olan py.test tarafından kontrol edilmekte ve başlatılmaktadır (çalışmakta olan Eclipse'in hata ayıklamayı üstlenmesini istiyorum). – nikow

1

: örnek sadece belirli testler için ben böyle bir şey kullanabilmesi

args

, komut satırı argümanları listesidir (İş yerinde kullanıyorum) ve hata ayıklayıcı mükemmel çalışır.

+0

Öneriniz için teşekkürler. Yakın zamanda PyCharm 2.5'i kullanma şansım oldu ve çok iyi çalıştığını kabul ediyorum. Şu an PyCharm ve Aptana Stüdyosu arasında bölünmüş durumdayım. – nikow

+0

@nikow: aptana kullanmaya başladım ... nefret ettim, ayrıca, eğer eczacılığa aşina olursan, phpstorm, rubymine, intellij için de gidebilirsin ... tüm bu IDE'ler jetbinden, ve aynı yapıya, kısayollara sahip. ... Yani kesinlikle değer. Tutulma hayranı olmak için kullanıyorum, ama jet beyinlerinin PyCharm için beni –

+0

+1 aldığını biliyorum. Aptana'yı PHP için kullanıyordum ama PyCharm'ı kullandıktan sonra yavaş yavaş JetBrain'in ürünlerine geçeceğim. –

3

Bu şimdi pytest tarafından desteklenen ve belgelerde güzel here açıklanmıştır.

0

sadece bir hata ayıklayıcı istiyoruz ve

İlgili konular