-3

テキストファイルから次の出力があります。

===============================================

guideMenuSuite.mts:
[monkeytalk:run] MonkeyTalk v1.0.11.beta5c_473 - 2012-07-18 11:38:51 MDT - Copyright 2012 Gorilla Logic, Inc. - www.gorillalogic.com
[monkeytalk:run] running suite guideMenuSuite.mts...
[monkeytalk:run] BCOKAS127271: -start suite (1 test)
[monkeytalk:run] BCOKAS127271:   1 : guide_menu.mt
[monkeytalk:run] BCOKAS127271:   -> OK
[monkeytalk:run] BCOKAS127271: -end suite
[monkeytalk:run] result: OK
[monkeytalk:run] ...done

================================================

Java では、次のことを行う必要があります。1) デバイスのシリアル番号の出力を解析します (この場合は BCOKAS127271.... テスト対象のデバイスによって異なります)。2) -> (この場合は -> OK) の後のテストのステータス結果を取得します。

分割を使用してみましたが、データがnullになり続けます...

どんな提案でも大歓迎です。

ここに私のコードがあります:

コード

while ((strLine = br.readLine()) != null) 
                {
                    maintextarea.append(strLine + "\n");
                    System.out.println(strLine);
                    System.out.flush();
                    maintextarea.append(selectedSerial);
                    delims = "[ \\->]+";
                    //String[] tokens = strLine.split(delims);
                    //String[] tokens = strLine.substring(prefix.length()).split(delims);

                    String noprefixStr = strLine.substring(strLine.indexOf(prefix) + prefix.length());
                    String[] tokens = noprefixStr.split(delims);

                    //for (String t: tokens)
                    {
                        //System.out.println(t);

                            if (tokens.toString().contains("ERROR"))
                            {
                                testStatus = "ERROR";
                                maintextarea.append("\n" + selectedValue + " " + selectedSerial + " = " + testStatus + "\n");
                                System.out.println(selectedValue + " " + selectedSerial + " = " + testStatus);
                                System.out.flush();
                            }

                            else if (tokens.toString().contains("FAILURE"))
                            {
                                testStatus = "FAILED";
                                maintextarea.append("\n" + selectedValue + " " + selectedSerial + " = " + testStatus + "\n");
                                System.out.println(selectedValue + " " + selectedSerial + " = " + testStatus);
                                System.out.flush();
                            }

                            else if (tokens.toString().contains("OK"))
                            {
                                testStatus = "PASSED";
                                maintextarea.append("\n" + selectedValue + " " + selectedSerial + " = " + testStatus + "\n");
                                System.out.println(selectedValue + " " + selectedSerial + " = " + testStatus);
                                System.out.flush();
                            }

                            else
                            {
                                testStatus = "N/A";
                                maintextarea.append("\n" + selectedValue + " " + selectedSerial + " = " + testStatus + "\n");
                                System.out.println(selectedValue + " " + selectedSerial + " = " + testStatus);
                                System.out.flush();
                            }

                    }


                }


                br.close();

================================================== ==========

アップデート:

このグループから受け取ったすべての意見に基づいて解決策を見つけました! 私はそれを本当にシンプルにして、式の出力ファイルを解析し、その設定に基づいて、変数を合格または失敗またはエラーに設定しました。

使用した基本コードは次のとおりです。

try 
        {
            BufferedReader br = new BufferedReader(new InputStreamReader(new DataInputStream(new FileInputStream("/home/ironmantis7x/Documents/TWC_test/MT_test_runner_output.txt"))));
            String strLine;
            while ((strLine = br.readLine()) != null)
            {
                if (strLine.contains("-> OK"))
                {
                    testStatus = "Pass";
                    System.out.println("Test Result = " + testStatus);
                }

            }
        } 

        catch (FileNotFoundException ex) 
        {
            Logger.getLogger(parseFile.class.getName()).log(Level.SEVERE, null, ex);
        }

申し訳ありませんが、皆さんに戻ってお礼を言うのに時間がかかりました!

アイアンマンティス7x

4

1 に答える 1

1

正規表現を使用できます。

import java.util.Pattern
import java.util.Matcher

Pattern status = Pattern.compile("\\[.*] \\w+:\\s+-> (\w+).*");

...

ここでその方法を学ぶことができます

于 2012-12-07T22:54:04.480 に答える