2017-08-07 2 views
0

そこで実行されるアプリケーションを使用してデータベースサーバーにログインしようとしています。私は問題なくログインすることができますが、サーバー上の作業ディレクトリをログに記録しようとすると、ログインした後のデフォルトのディレクトリが表示され、変更されたディレクトリは表示されません。サーバー上の場所のロギング - Robot Framework/CMD

全体のテストケースは次のようになります。

*** Settings *** 
Library SSHLibrary 

*** Variables *** 
${IP} IP 
${user} user 
${password} password 
*** Test Cases *** 
CMD 
    Open connection ${IP} 
    login ${user} ${password} 
    execute command cd gtms/bin 
    ${pwd} execute commanrd pwd 
    log ${pwd} 

そして私は、私はPWDを使用するときに私は午前ディレクトリについての情報を得ることを期待していますが、それは動作しません。私はログにこれを得ます:

KEYWORD BuiltIn . Log ${pwd} 
Documentation: 
Logs the given message with the given level. 
Start/End/Elapsed: 20170807 16:07:14.266/20170807 16:07:14.267/  
00:00:00.001 
16:07:14.267 INFO /home/ollie 

私は間違って何を言っているのですか?

ありがとうございます。第2の呼にpwdにより可視、永続化されていないこのようcd最初の呼び出しで -

+1

その 'cd'コマンドの結果コードは何ですか? 'Execute Command'には' return_rc = True'をつけることができます。 –

+0

これは実際のコードですか?私は、 'execute commanrd'が間違っていて、エラーを投げるべきであるので、それを尋ねます。 –

+0

return_rc = Trueが追加され、LOG: KEYWORD SSHLibraryに入っています。コマンドを実行するcd gtms/bin、 return_rc = True ドキュメント:\t リモートマシンで 'command'を実行し、その出力を返します。経過 開始/終了/:\t 20170808 08:51:19.274/20170808 08:51:19.305/00:00:00.031 08:51:コマンド 'CDのGTMS/binに' を実行19.274 \t INFO \t。 \t 08:51:19.305 \t INFO \tコマンドはリターンコード1で終了しました。 – Qucu

答えて

0

Execute Commandは常に新しいシェルで指定されたコマンド(複数可)を実行します。 、あなたが望むものを達成するために

The command is always executed in a new shell. Thus possible changes to the environment (e.g. changing working directory) are not visible to the later keywords: 
${pwd}= Execute Command pwd 
Should Be Equal ${pwd} /home/johndoe 
Execute Command cd /tmp 
${pwd}= Execute Command pwd 
Should Be Equal ${pwd} /home/johndoe 

だけターゲットコマンドをチェーン、一度実行します:これは、実際にそのdocumentation例である

${output}= Execute Command cd gtms/bin; pwd 
Log ${output} # will log the output of the executed command(s) - in this case, pwd 
+0

これは本当に役立ちます。それが実際に動作するかどうかを確認するために、チェーンコマンドからpwdをログに記録する方法はありますか? – Qucu

+0

これは役に立つだけで、それは答えです;) 'Execute Command'は実行されたものの出力を返します。この場合、連鎖したコマンドは変数に代入して必要な処理を行います。私はそれを含める答えを更新しました。 – Todor

+0

提案した内容を追加しましたが、出力がまだ間違っています: KEYWORD $ {output} = SSHLibrary。コマンドcd gtms/binを実行します。 pwd リモートマシンで 'command'を実行し、その出力を返します。 開始/終了/経過:\t 20170809 13:14:24.004 13:14:24.004 \t INFO \tコマンド 'cd gtms/bin; pwd '。 \t 13:14:14:24.280 \t INFO \t $ {出力} = /ホーム/オーリー\t 00:00:24.280 00.000KEYWORD組み込み\t INFO \tコマンドはリターンコード0 \t 13で終了しました。 Log $ {output} 与えられたレベルのメッセージを記録します。 開始/終了/経過:\t 20170809 13:14:24.281 13:14:24。281 \t INFO \t/home/ollie – Qucu

関連する問題