2014-04-17 33 views
44

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:

cevap

83

reference config bu bölümde ilginç olabilir böyle iletki ararsanız sizin durumunuzda Yani browser.params.login.user

:

protractor ... --params.login.user=abc --params.login.password=123 

böyle kodunuzda bu değişkenler erişebilir:

browser.params.login.user ve

+3

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; – rob

+2

Baş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

+0

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

İlgili konular