Bazı uçtan uca testler yapmak için İletki kullanıyorum ve bir spec dosyasında saklamak yerine komut satırından giriş kimlik bilgilerini geçmek istiyorum. Birinin process.argv.forEach
kullandığı bir gönderi buldum, ancak bu değerleri nasıl saklayabilirim ve bunları başka bir özellik dosyasında kullanabilir miyim? Komut satırı argümanlarını kullanmak istediğim login-spec.js
adlı bir dosyam var.Angularjs Protractor'da komut satırı argümanlarını nasıl kullanabilirim?
Teşekkürler!
// The params object will be passed directly to the protractor instance,
// and can be accessed from your test. It is an arbitrary object and can
// contain anything you may need in your test.
// This can be changed via the command line as:
// --params.login.user 'Joe'
params: {
login: {
user: 'Jane',
password: '1234'
}
},
Ve kodunuzda böyle params nesneye erişebilen:
denemek ve komut satırında bir dizi geçirirseniz
browser.params.login.password
"iletki --params.myArray = [1,2,3]" Eğer JSON gereken bir dize olarak görülecektir. (browser.params.myArray) ayrıştırmak; – robBaşka bir hızlı not, = komut satırında imza isteğe bağlıdır. Yani "iletki -params.myNum = 50 ...", "iletici --params.myNum 50 ..." ye eşdeğerdir. Başlangıçta cevabın yorumunun yanlış olduğunu düşünmüştüm. – rob
Bir çekicilik gibi çalışır! Gerçi, dizeleri argüman olarak aldığından, boole'larla uğraşmak bir tür karmaşa yaratıyor. İpucu: Kodunuzda varsayılan değerler varsa, bunları yanlış olarak ayarlayın ve gerekirse CLI'den (örn. Iletici ... --params.myFlag = true) geçersiz kılın, çünkü hem "doğru" hem de "yanlış" aslında falsi . Eğer CLI üzerinden false vermeniz gerekiyorsa, orada sadece falsy dizgisini kullanmalısınız: iletki ... --- params.myFlag = (sonunda boş bırakın, evet işe yarayacak şekilde çalışır !) – schonarth