2011-06-11 14 views
9

Paylaşmak istediğim bir kod yazdım ve yapının oluşturulmasında/sürdürülmesinde en iyi uygulamaları takip etmek istiyorum. Kodu BitBucket'te barındıracağım ve şimdi nasıl organize edeceğimi düşünüyorum. Bu iyi bir yapı mı?Bir Python açık kaynak projesinin normal yapısı nedir ve testleri yürütmenin tercih edilen yolu nedir?

Bu nedenle, bu kaynak lib'de ve sınamadaki sınamalarda olacaktır. Python projelerinde böyle mi yapılır? Bu benim gördüğüm yapı Ruby projeleriyle en çok kullanılan yapıydı.

set PYTHONPATH=`pwd`/lib 
python test/a_test.py 
+0

Eh, 'pwd' çapraz platform değil. Testlerde PYTHONPATH ile ilgili olarak şu soruya bakın: http://stackoverflow.com/questions/1896918/running-unittest-with-typical-test-directory-structure –

+0

@Todd Owen, evet, pwd'nin çapraz platform olmadığını biliyorum, ancak Python bir komut dosyası çalıştırırken onun değerini düşünecektir. – Geo

cevap

1

Sevdiğim geldim yaklaşım şudur:

  • kullanım distutils ve yaratmak Ben birim testler zaman da, böyle yapmak iyi bir uygulama olarak kabul olduğunu setup.py dosyası. (Bu, çok sayıda uzantı sınıfınız olduğunda çoğunlukla yararlı ). Bu, sistem genelinde veya bir virtualenv dizininde modülünü yüklemenizi sağlar.
  • bunu "çıplak kemikler" belgelerinde (olarak çift çünkü doctest, istediğiniz şeydir, ciddi test var, ama şeylerin gündelik tarafında kalmak istiyorsanız testleri belgelemek ve bazı yorumlar üzerinde eklediğinizde ne yapıyor? Kodunuzun belgelerindeki sınamaları kullanmak için doctest'i kullanabilir veya testlerini bazı ayrı .txt dosyalarında saklayabilirsiniz.

Sen setup.py dosyasında uygun bir cmdclass=... girişi ile setup komutu uzatarak doctest.testmod entegre edebilirsiniz. Setup.py'deki sınamayı birleştiren bir çözüm için bkz. this example (CouchDB setup) . ( 'un hem testlere hem de gerçek belgelere sahip olduğu ayrı dosyaları kullanır; bu da bir olasılıktır).

İlgili konular