Kurallar
takma ad
Kural kaynağını gösteralias(name, actual, compatible_with, deprecation, features, restricted_to, tags, target_compatible_with, testonly, visibility)
alias
kuralı, kuralı ifade etmek için kullanılabilecek başka bir ad oluşturur.
Takma ad verme yalnızca "normal" hedefler için çalışır. Özellikle package_group
ve test_suite
takma adlar kullanılamaz.
Takma ad kuralının kendi görünürlük beyanı vardır. Diğer tüm açılardan, kuralların başvuruda bulunduğu kural gibi davranır (ör. takma adda yalnızca test amaçlı yok sayılır; bunun yerine, referans verilen kuralın test değeri yalnızca kullanılır), bazı küçük istisnalar vardır:
-
Komut satırında takma adından bahsediliyorsa testler çalıştırılmaz. Referans verilen testi çalıştıran bir takma ad tanımlamak için
tests
özelliğinde tek hedef içeren birtest_suite
kuralı kullanın. -
Ortam grupları tanımlanırken
environment
takma adları desteklenmez.--target_environment
komut satırı seçeneğinde de desteklenmezler.
Örnekler
filegroup( name = "data", srcs = ["data.txt"], ) alias( name = "other", actual = ":data", )
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
actual
|
|
yapılandırma_ayarı
Kural kaynağını gösterconfig_setting(name, constraint_values, define_values, deprecation, distribs, features, flag_values, licenses, tags, testonly, values, visibility)
Yapılandırılabilir özellikleri tetiklemek amacıyla beklenen bir yapılandırma durumuyla (derleme işaretleri veya platform kısıtlamaları olarak ifade edilir) eşleşir. Bu kuralın nasıl kullanılacağını öğrenmek için select, genel özellik için genel bir bakış için Yapılandırılabilir özellikler bölümüne bakın.
Örnekler
Aşağıda, --compilation_mode=opt
veya -c opt
öğesini ayarlayan her derlemeyle (açıkça komut satırında veya dolaylı olarak .bazelrc dosyalarından) eşleşir:
config_setting( name = "simple", values = {"compilation_mode": "opt"} )
Aşağıda, ARM'yi hedefleyen ve FOO=bar
özel tanımı uygulayan tüm derlemelerle eşleşir (örneğin, bazel build --cpu=arm --define FOO=bar ...
):
config_setting( name = "two_conditions", values = { "cpu": "arm", "define": "FOO=bar" } )
Aşağıda, kullanıcı tanımlı işareti
--//custom_flags:foo=1
(açık olarak komut satırında veya .bazelrc dosyalarından dolaylı olarak) ayarlayan herhangi bir derlemeyle eşleşir:
config_setting( name = "my_custom_flag_is_set", flag_values = { "//custom_flags:foo": "1" }, )
Aşağıdaki örnekte, //example:glibc_2_25
etiketine sahip bir constraint_value
bulunduğunu varsayarak x86_64 mimarisi ve glibc 2.25 sürümü olan bir platformu hedefleyen derlemeler eşleşir. Bir platformun bu ikisinin dışında ek kısıtlama değerleri tanımlaması durumunda da eşleştiğini unutmayın.
config_setting( name = "64bit_glibc_2_25", constraint_values = [ "@platforms//cpu:x86_64", "//example:glibc_2_25", ] )Tüm durumlarda, örneğin yapılandırmanın derleme içinde değişmesi mümkündür. Örneğin, bir hedefin ayrı bir platform için oluşturulması gerekiyorsa bu yöntem
config_setting
üst düzey komut satırı işaretleriyle eşleşmese bile bazı derleme hedefleriyle eşleşebilir.
Notlar
- Birden çok
config_setting
, geçerli yapılandırma durumuyla eşleştiğinde ne olacağını öğrenmek için select bölümüne bakın. - Kısa formları destekleyen işaretler için (ör.
--compilation_mode
--c
),values
tanımları tam formu kullanmalıdır. Bu formlar veya formlar kullanılarak çağrılar otomatik olarak eşleşir. -
Bir işaret birden fazla değer (örneğin,
--copt=-Da --copt=-Db
veya liste türünde bir Starlark işareti) alırsa"a"
, gerçek listede herhangi bir yer alıyorsavalues = { "flag": "a" }
eşleşir.values = { "myflag": "a,b" }
, aynı şekilde çalışır:--myflag=a --myflag=b
,--myflag=a --myflag=b --myflag=c
,--myflag=a,b
ve--myflag=c,b,a
ile eşleşir. Anlamlar, işaretler arasında farklılık gösterir. Örneğin--copt
, aynı örnekte birden fazla değeri desteklemez:--copt=a,b
["a,b"]
,--copt=a --copt=b
ise["a", "b"]
oluşturur (böylecevalues = { "copt": "a,b" }
ilkiyle eşleşir ancak ikincisiyle eşleşmez). Ancak--ios_multi_cpus
(Apple kuralları için) üretir:-ios_multi_cpus=a,b
veios_multi_cpus=a --ios_multi_cpus=b
["a", "b"]
oluşturur. Beklenti tanımlarını kontrol edin ve beklentilerinizi doğru bir şekilde doğrulamak için koşullarınızı dikkatlice test edin. - Yerleşik derleme işaretleri tarafından modellenmeyen koşullar tanımlamanız gerekiyorsa
Starlark tarafından tanımlanmış işaretleri kullanın.
--define
etiketini de kullanabilirsiniz ancak bu seçenek daha zayıf bir destek sunduğundan önerilmez. Daha fazla bilgi edinmek için buraya göz atın. - Aynı
config_setting
tanımlarını farklı paketlerde tekrarlamaktan kaçının. Bunun yerine standart bir pakette tanımlanan ortak birconfig_setting
referansına bakın. values
,define_values
veconstraint_values
, aynıconfig_setting
öğesindeki herhangi bir kombinasyonda kullanılabilir. Ancak herhangi birconfig_setting
için en az bir tane ayarlanmalıdır.
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
constraint_values
|
config_setting ile eşleşmesi için belirtmesi gereken minimum constraint_values grubudur. (Yürütme platformu burada dikkate alınmaz.) Platformdaki ek kısıtlama değerleri yoksayılır. Ayrıntılar için
Yapılandırılabilir Derleme Özellikleri bölümüne bakın.
İki |
define_values
|
values ile aynıdır, ancak özellikle --define işareti için kullanılır.
Bunun anlamı: config_setting( name = "a_and_b", values = { "define": "a=1", "define": "b=2", }) aynı anahtar ( config_setting( name = "a_and_b", define_values = { "a": "1", "b": "2", })
|
flag_values
|
values ile aynıdır ancak
kullanıcı tarafından tanımlanan derleme işaretleri için kullanılır.
Bu, kullanıcı tanımlı flag'lere etiket olarak, yerleşik flag'lere de rastgele dizeler olarak başvurulduğu için ayrı bir özelliktir. |
values
|
Bu kural, Kolaylık olması açısından, yapılandırma değerleri yapı işaretleri olarak (önceki Bir işaret, komut satırında açıkça ayarlanmamışsa varsayılan değeri kullanılır.
Bir anahtar, sözlükte birden çok kez görünüyorsa yalnızca son örnek kullanılır.
Anahtar, komut satırında birden çok kez ayarlanabilen bir işarete (ör.
|
dosya grubu
Kural kaynağını gösterfilegroup(name, srcs, data, compatible_with, deprecation, distribs, features, licenses, output_group, restricted_to, tags, target_compatible_with, testonly, visibility)
Bir hedef koleksiyona kolay bir ad vermek için filegroup
kullanın.
Bunlara diğer kurallardan referans verilebilir.
Dizinleri doğrudan referans almak yerine filegroup
kullanmanız önerilir.
İkincisi, derleme sisteminin dizin altındaki tüm dosyalarla ilgili tam bilgiye sahip olmaması nedeniyle güvenilir değildir, bu nedenle bu dosyalar değiştiğinde yeniden oluşturulmayabilir. filegroup
, glob ile birlikte kullanıldığında tüm dosyaların derleme sistemi tarafından açıkça bilinmesini sağlayabilir.
Örnekler
İki kaynak dosya içeren bir filegroup
oluşturmak için:
filegroup( name = "mygroup", srcs = [ "a_file.txt", "some/subdirectory/another_file.txt", ], )
Alternatif olarak, test verisi dizinini oluşturmak için glob
kullanın:
filegroup( name = "exported_testdata", srcs = glob([ "testdata/*.dat", "testdata/logs/**/*.log", ]), )
Bu tanımlardan yararlanmak için herhangi bir kuraldan bir etiket kullanarak filegroup
referansını kullanın:
cc_library( name = "my_library", srcs = ["foo.cc"], data = [ "//my_package:exported_testdata", "//my_package:mygroup", ], )
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
srcs
|
|
data
|
|
output_group
|
"Çıkış grubu" bir hedefin çıkış yapılarının kategorisidir ve bu kuralın uygulanmasında belirtilir. |
genquery
Kural kaynağını göstergenquery(name, deps, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, expression, features, licenses, opts, restricted_to, scope, strict, tags, target_compatible_with, testonly, visibility)
genquery()
, Blaze sorgu dilinde belirtilen bir sorguyu çalıştırır ve sonucu bir dosyaya aktarır.
Derlemenin tutarlılığını korumak için sorgunun yalnızca scope
özelliğinde belirtilen hedeflerin geçici olarak kapanmasını ziyaret etmesine izin verilir. strict
belirtilmezse veya doğru değerine ayarlanırsa bu kuralı ihlal eden sorgular başarısız olur (strict
yanlışsa kapsam dışı hedefler uyarıyla atlanır). Bunun olmasını sağlamanın en kolay yolu, kapsamda sorgu ifadesindeki etiketlerden bahsetmektir.
Burada ve komut satırında izin verilen sorgular arasındaki tek fark, burada joker karakter hedefi spesifikasyonları (ör. //pkg:*
veya //pkg:all
) içeren sorgulara izin verilmediğidir.
Bunun iki nedeni vardır: İlk olarak, genquery
sorgudan geçen transkriptin dışında kalan hedeflerin çıkışını etkilemesini önleyecek bir kapsam belirtmesi gerekir ve ikincisi, BUILD
dosyaları joker karakter bağımlılarını desteklemez (ör. deps=["//a/..."]
'e izin verilmez).
Gengen çıktısı, belirleyici çıktıyı zorunlu kılmak için --order_output=full
kullanılarak sıralanır.
Çıkış dosyasının adı, kuralın adıdır.
Örnekler
Bu örnekte, belirtilen hedefin geçişli kapanmasındaki etiketlerin listesi bir dosyaya yazılır.
genquery( name = "kiwi-deps", expression = "deps(//kiwi:kiwi_lib)", scope = ["//kiwi:kiwi_lib"], )
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
expression
|
a/BUILD dosyasındaki bu özellikte :b etiketi, //:b hedefini belirtir.
|
opts
|
bazel query 'e iletilebilecek komut satırı seçeneklerine karşılık gelir. Şu sorgu seçeneklerine izin verilmez: --keep_going , --query_file , --universe_scope , --order_results ve --order_output . Burada belirtilmeyen seçenekler, varsayılan değerleri bazel query gibi olacaktır.
|
scope
|
|
strict
|
|
Genrule
Kural kaynağını göstergenrule(name, srcs, outs, cmd, cmd_bash, cmd_bat, cmd_ps, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, exec_tools, executable, features, licenses, local, message, output_licenses, output_to_bindir, restricted_to, tags, target_compatible_with, testonly, toolchains, tools, visibility)
genrule
, kullanıcı tanımlı bir Bash komutu kullanarak bir veya daha fazla dosya oluşturur.
Genel kurallar, görev için belirli bir kural yoksa kullanabileceğiniz genel derleme kurallarıdır.
Örneğin, bir Bash tek satırlık çalıştırabilirsiniz. Bununla birlikte, C++ dosyalarını derlemeniz gerekiyorsa zor işlerin tamamı sizin için zaten yapılmış olduğundan, mevcut cc_*
kurallarına uyun.
Genrule'un komut bağımsız değişkenini yorumlamak için bir kabuk gerektirdiğini unutmayın. Ayrıca, PATH yolunda rastgele programlara referans vermek de kolaydır. Ancak bu komut, "hermetik" değildir ve yeniden oluşturulamaz. Yalnızca tek bir araç çalıştırmanız gerekiyorsa bunun yerine run_binary kullanmayı düşünebilirsiniz.
Test çalıştırmak için toplu etiket kullanmayın. Testler ve test sonuçları için önbelleğe alma politikaları ve ortam değişkenleri dahil olmak üzere özel kesintiler vardır. Testlerin genellikle derleme tamamlandıktan ve hedef mimaride yürütülmesi gerekirken, geliştirme kuralları derleme sırasında ve yürütme mimarisinde yürütülür (ikisi farklı olabilir). Genel amaçlı bir test kuralına ihtiyacınız varsa sh_test
kullanın.
Derlemeyle İlgili Dikkat Edilmesi Gereken Noktalar
Çapraz derleme hakkında daha fazla bilgi için kullanıcı kılavuzuna bakın.
Oluşturma kuralları derleme sırasında çalıştırılırken, bunların çıkışı genellikle derlemeden sonra, dağıtım veya test için kullanılır. Mikrodenetleyici için C kodunu derleme örneğine bakın: Derleyici C kaynak dosyalarını kabul eder ve bir mikro denetleyici üzerinde çalışan kodu oluşturur. Oluşturulan kod, derleme için kullanılan CPU'da çalıştırılamaz ancak C derleyicinin (kaynaktan derlendiyse) yapması gerekir.
Derleme sistemi, derlemenin çalıştığı makineleri tanımlamak için exec yapılandırmasını ve derleme çıkışının çalışması gereken makineleri tanımlamak için hedef yapılandırmasını kullanır. Bunların her birini yapılandırma seçenekleri sunar ve çakışmaları önlemek için ilgili dosyaları ayrı dizinlere ayırır.
Genel kurallar için derleme sistemi, bağımlılıkların uygun şekilde derlenmesini sağlar:
srcs
, target yapılandırması için oluşturulur (gerekiyorsa), tools
exec yapılandırması için oluşturulur ve çıktının target yapılandırması için olduğu kabul edilir. Ayrıca, rezervasyon komutlarının ilgili araçlara aktarabileceği
"Oluşturma" değişkenleri de sağlar.
Çoğunluk, gencin hiçbir deps
özelliğini tanımlamaması için tasarlanmıştır: Diğer yerleşik kurallar, bağımlı kuralların nasıl işleneceğini otomatik olarak belirlemek için kurallar arasında iletilen dile bağlı meta bilgiler kullanır. Bununla birlikte, genRules için bu otomasyon seviyesi mümkün değildir. Genel kurallar yalnızca dosya ve çalıştırma dosyaları düzeyinde çalışır.
Özel Durumlar
Exec-exec derlemesi: Bazı durumlarda derleme sisteminin, oluşturma işlemi sırasında da çıkışın yürütülebilmesi için kural kuralları çalıştırması gerekir. Örneğin bir popülasyonda, daha sonra başka bir kişi tarafından kullanılan bazı özel derleyiciler oluşturulursa ilki, derleyicinin çıkışını exec yapılandırması için üretmek zorundadır. Bu durumda derleme sistemi otomatik olarak doğru şeyi yapar: Yürütme yapılandırması için hedef yapılandırma yerine ilk pencerenin srcs
ve outs
değerlerini oluşturur. Daha fazla bilgi için kullanıcı kılavuzuna bakın.
JDK ve C++ Araçları: JDK veya C++ derleyici paketindeki bir aracı kullanmak için derleme sistemi, kullanılacak bir dizi değişken sağlar. Ayrıntılar için "Değişken" değişkeni bölümüne bakın.
Gengenle Ortamı
genrule komutu, set -e -o pipefail
kullanılarak bir komut veya ardışık düzen başarısız olduğunda başarısız olacak şekilde yapılandırılan Bash kabuğu tarafından yürütülür.
Derleme aracı, Bash komutunu yalnızca PATH
, PWD
, TMPDIR
gibi temel değişkenleri ve diğer birkaç değişkeni tanımlayan temiz bir işlem ortamında yürütür.
Derlemelerin yeniden oluşturulabilir olmasını sağlamak için kullanıcının kabuk ortamında tanımlanan değişkenlerin çoğu, genolle komutuna aktarılmaz. Ancak Bazel (Blaze değil), kullanıcının PATH
ortam değişkeninin değerini iletir.
PATH
değerindeki herhangi bir değişiklik, Bazel'ın sonraki derlemede komutu yeniden yürütmesine neden olur.
Düğüm komutu ağa şu anda erişmemelidir. Komutun alt öğeleri olan işlemler şu an için zorunlu değildir.
Derleme sistemi mevcut çıkış dosyalarını otomatik olarak siler ancak sorgu yürütmeden önce gerekli üst dizinleri oluşturur. Ayrıca herhangi bir hata durumunda çıkış dosyaları da kaldırılır.
Genel Tavsiye
- Bir gengenin çalıştırdığı araçların belirleyici ve somut olduğundan emin olun. Çıkışlarına zaman damgaları yazmamalı, kümeler ve haritalar için sabit sıralama kullanmalı ve çıkış için yalnızca göreli dosya yolları yazmamalıdır. Bu kurala uyulmaması, beklenmedik derleme davranışına (Bazel sanacağını düşündüğünüz bir çıkıntıyı yeniden derlemez) yol açar ve önbellek performansını düşürür.
- Çıkışlar, araçlar ve kaynaklar için
$(location)
'ı kapsamlı şekilde kullanın. Farklı yapılandırmalar için çıkış dosyalarının ayrılması nedeniyle, genel kurallar sabit kodlu ve/veya mutlak yollara güvenemez. - Aynı veya çok benzer genel kuralların birden fazla yerde kullanılması ihtimaline karşı yaygın bir Starlark makrosu yazın. Karmaşık bir karmaşıksa, komut dosyasına veya bir Starlark kuralı olarak uygulamayı deneyin. Bu, okunabilirliği ve test edilebilirliği iyileştirir.
- Çıkış kodunun, bekarlığa ait başarıyı veya başarısızlığı doğru şekilde gösterdiğinden emin olun.
- Stdout veya stderr'a bilgi mesajı yazmayın. Bu, hata ayıklama için kullanışlı olsa da kolayca gürültü oluşturabilir. Başarılı bir tür, sessiz olmalıdır. Diğer yandan, başarısız bir müdahalenin iyi hata mesajları vermesi gerekir.
$$
evaluates to a$
, a literal dollar-sign, so in order to invoke a shell command containing dollar-signs such asls $(dirname $x)
, one must escape it thus:ls $$(dirname $$x)
.- Simge bağlantıları ve dizinler oluşturmaktan kaçının. Bazel, genrules tarafından oluşturulan dizin/simlink bağlantısı yapısını kopyalamaz ve dizinler için bağımlı kontrolü güvenilir değildir.
- Diğer kurallarda gösteriden bahsederken, dosyalaşma etiketini veya tek tek çıkış dosyalarının etiketlerini kullanabilirsiniz. Bazen bir yaklaşım daha okunabilirken bazen de bir diğer sonuçla karşılaşabilirsiniz: Bir tüketim kuralının
srcs
işlevinde çıkışlara adla referans verilmesi, kasıtlı olarak diğer erkeklerin çıktılarını istemeden toplamaktan kaçınır ancak algoritmanın çok sayıda çıkışı olması yorucu olabilir.
Örnekler
Bu örnekte foo.h
oluşturulur. Komut herhangi bir giriş almadığı için kaynak yok. Komut tarafından çalıştırılan "binary" gengule aynı paketteki bir perl komut dosyasıdır.
genrule( name = "foo", srcs = [], outs = ["foo.h"], cmd = "./$(location create_foo.pl) > \"$@\"", tools = ["create_foo.pl"], )
Aşağıdaki örnekte filegroup
nasıl kullanılacağı ve diğer genrule
öğesinin sonuçları gösterilmektedir. Açık $(location)
yönergeleri yerine $(SRCS)
kullanmanın da işe yarayacağını unutmayın. Bu örnek, tanıtım amacıyla ikincisini kullanır.
genrule( name = "concat_all_files", srcs = [ "//some:files", # a filegroup with multiple files in it ==> $(locations) "//other:gen", # a genrule with a single output ==> $(location) ], outs = ["concatenated.txt"], cmd = "cat $(locations //some:files) $(location //other:gen) > $@", )
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. Bu kuralı, diğer BUILD kuralların srcs veya deps bölümünde ad kullanarak bulabilirsiniz. Kural kaynak dosyalar oluşturuyorsa bu srcs özelliğini kullanmanız gerekir.
|
srcs
|
Bu özellikler,
Derleme sistemi, bu ön koşulların oluşturma komutu çalıştırılmadan önce oluşturulduğundan emin olur. Orijinal derleme isteğiyle aynı yapılandırma kullanılarak oluşturulur. Bu ön koşullardaki dosyaların adları komutta |
outs
|
Çıktı dosyaları paket sınırlarını aşmamalıdır. Çıktı dosya adları, pakete göre yorumlanır.
genrule komutunun, her çıkış dosyasını önceden belirlenmiş bir konumda oluşturması beklenir.
|
cmd
|
$(location)
ve "Oluşturma" değişkeni yerine geçer.
cmd_bash , cmd_ps ve cmd_bat yedeğidir.
Komut satırı uzunluğu platform sınırını (Linux/macOS'ta 64K, Windows'da 8K) aşıyorsa Gengenle, komutu bir komut dosyasına yazar ve sorunu çözmek için yürütür. Bu, tüm cmd özellikleri ( |
cmd_bash
|
Bu özelliğin önceliği |
cmd_bat
|
Bu özelliğin önceliği
|
cmd_ps
|
Bu özelliğin önceliği
Powershell'in kullanımını daha kolay ve hata olasılığını azaltmak amacıyla, Powershell komutunu yürütülmeden önce ortamı oluşturmak için aşağıdaki komutları çalıştırırız.
|
exec_tools
|
tools kullanın.
Bir süredir |
executable
|
Bu işaretin Doğru değerine ayarlanması, çıkışın yürütülebilir bir dosya olduğu ve Oluşturulan yürütülebilir öğe için veri bağımlılığı beyan edilmesi desteklenmiyor. |
local
|
Bu politika True (Doğru) değerine ayarlanırsa
Bu, etiket olarak "yerel"in kullanılmasıyla eşdeğerdir ( |
message
|
Bu derleme adımı yürütülürken yazdırılacak bir ilerleme durumu mesajı. Varsayılan olarak mesaj, "çıkış oluşturuluyor" (veya eşit derecede belirsiz bir şeydir) ancak daha spesifik bir mesaj verebilirsiniz. |
output_licenses
|
common attributes
|
output_to_bindir
|
Doğru değerine ayarlanırsa bu seçenek, çıkış dosyalarının |
tools
|
Derleme sistemi, bu ön koşulların genrule komutunu çalıştırmadan önce derlenmesini sağlar. Bu araçlar derlemenin bir parçası olarak yürütüldüğü için exec yapılandırması kullanılarak oluşturulur. Tek bir
|
test_paketi
Kural kaynağını göstertest_suite(name, compatible_with, deprecation, distribs, features, licenses, restricted_to, tags, target_compatible_with, testonly, tests, visibility)
test_suite
, kullanıcılar için "faydalı" olarak kabul edilen bir dizi testi tanımlar. Bu, projelerin "giriş yapmadan önce çalıştırmanız gereken testler", "projemizin stres testleri" veya "tüm küçük testler" gibi test gruplarını tanımlamasına olanak tanır. blaze test
komutu bu tür bir kuruluşa saygı gösterir: Blaze, blaze test //some/test:suite
gibi bir çağrı için önce //some/test:suite
hedefi tarafından geçişli olarak dahil edilen tüm test hedeflerini ("test_paketi genişletme" olarak adlandırılır) sıralar, ardından Blaze bu hedefleri oluşturup test eder.
Örnekler
Mevcut paketteki tüm küçük testleri çalıştırmak için bir test paketi.
test_suite( name = "small_tests", tags = ["small"], )
Belirli bir test grubunu çalıştıran test paketi:
test_suite( name = "smoke_tests", tests = [ "system_unittest", "public_api_unittest", ], )
Mevcut paketteki güvenilir olmayan tüm testleri çalıştıracak bir test paketi.
test_suite( name = "non_flaky_test", tags = ["-flaky"], )
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
tags
|
"-" karakteriyle başlayan etiketler negatif etiket olarak kabul edilir. Önceki "-" karakteri etiketin bir parçası olarak kabul edilmez. Bu nedenle "-small" için bir etiket etiketi bir testin "küçük" boyutuyla eşleşir. Diğer tüm etiketler pozitif etiket olarak kabul edilir. İsteğe bağlı olarak, pozitif etiketleri daha belirgin hale getirmek için etiket "+" karakteriyle de başlayabilir. Bu karakter, etiket metninin bir parçası olarak değerlendirilmez. Sadece pozitif ve negatif ayrımı daha kolay okunur. Test paketine yalnızca pozitif etiketlerin tümüyle eşleşen ve negatif etiketlerin hiçbiri ile uyuşmayan test kuralları dahil edilir. Bunun, filtrelenen testlerde bağımlılık kontrolündeki hatanın atlandığı anlamına gelmediğini unutmayın.Atlanan testlerdeki bağımlılıkların da yasal olması gerekir (ör. görünürlük kısıtlamaları tarafından engellenmez).
Bir teste ait
Birlikte kullanılamayan etiketlerin bulunduğu testlere sahip bir |
tests
|
Dilden bağımsız olarak burada
|