2016-08-16 30 views
0

ロボットフレームワークで「username」パラメータを持つPowershellスクリプトを呼び出す一連のテストがあります。これは、ユーザー名にASCII以外の文字(この場合は英文字)が含まれるまでは問題ありません。ロボットは文字を正しく出力しています(私は値を記録し、テキストファイルに値を書き込んでチェックしましたが、常に正しいです)。Robot FrameworkからPowershellにASCII以外の文字が表示され、疑問符で表示される

しかしPowershellスクリプトに達すると、ユーザー名には疑問符の行が表示されます。

これはテキストエンコーディングと関係がありますが、それに対処する方法があるかどうかはわかりません。

私はロボットからユーザ名をテンポラリテキストファイルに書き込んだ後、Powershellスクリプトを取得してその値をテキストファイルから読み取ることができます。これは正常に動作しますが、複数のマシンでこれらのスクリプトをたくさん実行するとかなり非効率です。

param 
(
    [parameter(Mandatory=$True)] 
    [string]$UserName 
) 

$username | Out-File C:\Temp\Test.txt -Encoding UTF8 
+0

スクリプトなしで推測するのは難しいです。まず、 '$ OutputEncoding = [Console] :: OutputEncoding' – Deptor

答えて

0

Robot Framework User Guideから:

*** Variables *** 
${user_name} ÀÀÀ 

*** Test Cases *** 
Write foreign username 
    Write Username ${user_name} 

*** Keywords *** 
Write Username 
    [Arguments] ${user_name} 
    Run powershell.exe -file ".\\..\\Powershell\Write-Username.ps1" -UserName "${user_name}" 

PowerShellスクリプトは、次のコードが含まれています

私はテストスイートは(唯一の顕著なラインが引き出さ)以下の通りであります

出力符号化

すべての出力ファイルは、UTF-8エンコードを使用して書き込まれます。 と書かれた出力は、コンソールの現在のコンソールエンコードを使用します。

ロボットフレームワークはPythonベースです。従って、次Pythonの例は、ケースを例示することができ:(特定のコンソール・エンコーディングの様々な?疑問符を示す)

import sys 
username = 'ÀÁÂÃÄÅ' 
print(sys.stdout.encoding, "username=" + username) 

出力は次必然につながる:を開始する前に、適切な符号化にアクティブコンソールを設定しますロボットフレームワーク;最良の選択肢はutf-8です。 Change the active console Code Pageを参照し、CHCP 65001Windows cmd)を使用してください。

==> D:\test\Python\38975403.py 
utf-8 username=ÀÁÂÃÄÅ 

==> chcp 1252 >NUL 

==> python D:\test\Python\38975403.py 
cp1252 username=ÀÁÂÃÄÅ 

==> chcp 850 >NUL 

==> python D:\test\Python\38975403.py 
cp850 username=ÀÁÂÃÄÅ 

==> chcp 437 >NUL 

==> python D:\test\Python\38975403.py 
cp437 username=????ÄÅ 

==> chcp 852 >NUL 

==> python D:\test\Python\38975403.py 
cp852 username=?ÁÂ?Ä? 

FYI、次が使用されている外のASCII上記の例で手紙:

Ch UniCode  Dec UTF-8 Comment 

À U+00C0  192 0xC380 Latin Capital Letter A With Grave 
Á U+00C1  193 0xC381 Latin Capital Letter A With Acute 
 U+00C2  194 0xC382 Latin Capital Letter A With Circumflex 
à U+00C3  195 0xC383 Latin Capital Letter A With Tilde 
Ä U+00C4  196 0xC384 Latin Capital Letter A With Diaeresis 
Å U+00C5  197 0xC385 Latin Capital Letter A With Ring Above 
関連する問題