2016-07-18 7 views
-1

私はC#ユニットテストを実行してセレンテストを実行していますが、これでは別のユーザアカウントにサインインする必要があります。コマンドライン引数としてユーザ名とパスワードを取得しようとしていますが、C#visual studioユニットテストでこれを行う方法が見つかりません。C#ユニットテストでコマンドライン引数を使用する

私はこれをどのように行うことができますか?私のコードの

パート:ここ

[TestMethod] 
public void Login() 
    { 
     driver = new FirefoxDriver(); 
     driver.Manage().Window.Maximize(); 
     driver.Navigate().GoToUrl(this.baseURL);  
     driver.FindElementById("ctl00_ContentPlaceHolder1_Login1_UserName").SendKeys(userID); 
     driver.FindElementById("ctl00_ContentPlaceHolder1_Login1_Password").SendKeys(password); 
     driver.FindElementById("ctl00_ContentPlaceHolder1_Login1_LoginButton").Click(); 
    } 

「ユーザーID」と「パスワードは私のコマンドライン引数でなければなりません

はあなたの助けのために事前にありがとうございでは

+0

プロパティ>デバッグ - 開始オプションの下にコマンドライン引数を追加できる場所があります –

+0

コマンドラインからユーザー/パスワードを取得した後のシナリオを説明できますか? –

+0

私はコマンドライン引数を入力できるJenkinsを使用していますが、テスト中にこれらの引数にアクセスする方法がわかりません。 – EEdwards

答えて

0

。ユニットテストでは、コマンドラインからの可変入力は使用せず、一定にしてください。

たとえば、テストは次のようにしてください:

[TestMethod] 
public void Login() 
{ 
    driver = new FirefoxDriver(); 
    driver.Manage().Window.Maximize(); 
    driver.Navigate().GoToUrl(this.baseURL); 
    driver 
     .FindElementById("ctl00_ContentPlaceHolder1_Login1_UserName") 
     .SendKeys("testuser"); 
    driver 
     .FindElementById("ctl00_ContentPlaceHolder1_Login1_Password") 
     .SendKeys("testpass"); 
    driver 
     .FindElementById("ctl00_ContentPlaceHolder1_Login1_LoginButton") 
     .Click(); 
} 

テストが実行される前に、データベースが適切な状態で適切に擬似または初期化されていることを確認してください。

+0

これは私の初期のプロセスでしたが、その後私はそれをコマンドライン引数に変更するよう指示されました。これは、私たちの多くがチームにいるためです。ただ1つのユーザー名とパスワードを使用するのではなく、誰もが自分のものを確認できるように変更する必要があります。 – EEdwards

+0

あなたは悪い道をそこに下っています。ユニットテストは、共有データベースに対して実行してはいけません。各テストのデータベースを嘲笑したり、テストの前に既知の状態に初期化する必要があります。 –

+0

よろしく、感謝ジャスティン。好奇心のため、共有データベースに対してテストを実行しないのはなぜですか? – EEdwards

関連する問題