2

失敗した方法のスクリーンショットを撮ろうとしていますが、レポートにも同じものを入れたいと思っています。スクリーンショットを撮ることはできますが、HTML レポートに同じものを表示することはできません。以下は私のコードです、友達はこれについて何か手がかりがありますか?

public class SB1 {
    private static  Logger logger = Logger.getLogger(SB1.class);
    WebDriver driver = new FirefoxDriver();

@Test
public void Testone() {

    driver.get("http://www.google.com/");

    assert false;




}


public void catchExceptions(ITestResult result) {
    System.out.println("result" + result);
    String methodName = result.getName();
    System.out.println(methodName);

    if (!result.isSuccess()) {

        try {

        String failureImageFileName =  new SimpleDateFormat("MM-dd-yyyy_HH-ss").format(new GregorianCalendar().getTime())+ ".png"; 
        File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
        FileUtils.copyFile(scrFile, new File(failureImageFileName)); 

            String userDirector = System.getProperty("user.dir") + "/"; 
            Reporter.log("<a href=\""+ userDirector + failureImageFileName +"\"><img src=\"file:///" + userDirector 
                         + failureImageFileName + "\" alt=\"\""+ "height='100' width='100'/> "+"<br />"); 
            Reporter.setCurrentTestResult(null); 

        } catch (IOException e1) {
            e1.printStackTrace();
        }
}
4

3 に答える 3

4

ESCAPE_PROPERTY を false に設定しましたか? これは、Reporting にスクリーンショットを投稿してもらいたい場合に行う必要があることです -

    private static final String ESCAPE_PROPERTY = "org.uncommons.reportng.escape-output";

そしてあなたのセットアップで-

    System.setProperty(ESCAPE_PROPERTY, "false");
于 2013-03-27T18:59:50.160 に答える
0

私はこれを試しました。システム プロパティを false に設定すると、ログ全体からエスケープが削除されるようです...私が知る限り、システム プロパティがその時点で設定されているものは何でも、テスト後にレポートが生成されます。スクリーンショット (上記のコードで動作) を挿入したいのですが、他の書式設定 (br タグ) を削除したくありません。

于 2014-01-29T20:28:29.247 に答える
0

次のコードを使用できます。

Reporter.log("<br>Chrome driver launched for ClassOne</br>");

または、カスタマイズ メソッドを使用できます。毎回 br タグを追加する必要はありません。次のカスタマイズされたメソッドを使用します。

public void customLogReport(String testCaseDescription) throws Exception{ try{ Reporter.log("<br>" + testCaseDescription + "</br>"); }catch(Exception e){ e.printStackTrace(); } }

于 2016-07-27T15:07:07.377 に答える