1

「単純な」クエリを実行するようにFitnessを設定しようとしていますが、テストを実行するとjavalangエラーが発生します。

スリムプロトコルバージョンエラー

V0.3を期待していましたが、V0.2でした

すべて展開| すべてを折りたたむ

例外:java.lang.ClassCastException:java.lang.Stringは、fitnesse.slimTables.QueryTable $ QueryResults。(QueryTable。のfitnesse.slimTables.QueryTable $ QueryResults.makeRowMap(QueryTable.java:178)のjava.util.Listにキャストできません。 java:170)at Fitnesse.slimTables.QueryTable.scanRowsForMatches(QueryTable.java:84)at Fitnesse.slimTables.QueryTable.evaluateReturnValues(QueryTable.java:72)at Fitnesse.responders.run.slimResponder.SlimTestSystem.evaluateTable(SlimTestSystem.java :365)atfitnesse.responders.run.slimResponder.SlimTestSystem.evaluateTables(SlimTestSystem.java:360)atfitnesse.responders.run.slimResponder.HtmlSlimTestSystem.createHtmlResults(HtmlSlimTestSystem.java:40)atfitnesse.responders.run.slim SlimTestSystem.processTablesAndGetHtml(SlimTestSystem.java:280)atfitnesse.responders.run.slimResponder.SlimTestSystem.processAllTablesOnPage(SlimTestSystem.java:263)atfitnesse.responders.run.slimResponder.SlimTestSystem.runTestsAndGenerateHtml(SlimTestSystem.java:207)atfitnesse.responders.run.MultipleTests (MultipleTestsRunner.java:126)at Fitnesse.responders.run.MultipleTestsRunner.startTestSystemAndExecutePages(MultipleTestsRunner.java:106)at Fitnesse.responders.run.MultipleTestsRunner.executePagesInTestSystem(MultipleTestsRunner.java:92)atfitnesse.responders.run.MultipleTestsRunner。 internalExecuteTestPages(MultipleTestsRunner.java:83)at Fitnesse.responders.run.MultipleTestsRunner.executeTestPages(MultipleTestsRunner.java:56)atfitnesse.responders.run.TestResponder。performanceExecution(TestResponder.java:141)at Fitnesse.responders.run.TestResponder.doSending(TestResponder.java:45)at Fitnesse.responders.ChunkingResponder.startSending(ChunkingResponder.java:67)at Fitnesse.responders.ChunkingResponder.access $ 000 ChunkingResponder.java:17)at Fitnesse.responders.ChunkingResponder $ RespondingRunnable.run(ChunkingResponder.java:106)at java.lang.Thread.run(不明なソース)lang.Thread.run(不明なソース)lang.Thread.run(不明なソース)

コードは次のとおりです。

!path C:\...\UnitTest\bin\Debug\TestBuildingMeasurement.dll

!|import|

|TestBuildingMeasurement|

!|Query:fitTest|

|StartDate|EndDate|KWHValue|

|11/6/2010 12:00:00 AM|11/6/2010 1:00:00 AM|1533.01|

|11/6/2010 1:00:00 AM|11/6/2010 2:00:00 AM|1391.76|

|11/6/2010 2:00:00 AM|11/6/2010 3:00:00 AM|1311.90|

C#コード

public List<Object> query()

    {

        DateTime startDate = new DateTime(2010, 11, 06);//Day before the 2010 change to DST.  

        DateTime toDate = new DateTime(2010, 11, 09);  // Get the data from the day after the change to DST.

        MeterUsageLogic logicTest = new MeterUsageLogic();


        var values = new List<Object>();

        int buildingID = 1;

        MeterUsage_001 dsUsage = logicTest.GetMeterUsageInUTC(buildingID, startDate, toDate, 3600);

        if (dsUsage.Usage.Count == 72)

        {

            for (int count = 0; count < 72; count++)

            {

                Object[] record = dsUsage.Usage.Rows[count].ItemArray;

                DateTime StartDateValue = (System.DateTime)record.GetValue(0);

                string tempStartDateValue = Convert.ToString(StartDateValue);

                DateTime EndDateValue = (System.DateTime)record.GetValue(1);

                string tempEndDateValue = Convert.ToString(EndDateValue);

                Decimal kWHValue = (System.Decimal)record.GetValue(2);

                string tempkWHValue = Convert.ToString(kWHValue);

                List<string> temp = new List<string>();


                List<string> temp1 = new List<string>();

                List<string> temp2 = new List<string>();

                List<string> temp3 = new List<string>();

                //temp1.Add("StartDate");

                temp.Add(tempStartDateValue);

                //temp2.Add("EndDate");

                temp.Add(tempEndDateValue);

                //temp3.Add("KWHourValue");

                temp.Add(tempkWHValue);


                values.Add(temp);


            }

        }

        return values;

    }

また、バージョンエラーが発生する理由についてのヘルプをいただければ幸いです。新規インストール元のインストールで問題が発生したため、Source forge(20110104)からFitnesseをダウンロードし、Githubから.Netランナーをダウンロードして、今日ビルドしました。昨日JDKをインストールしたので、Javaのバージョンは「1.6.0_23」です。

4

1 に答える 1

1

Slimクエリテーブルは、リストのリストのリストを想定しています。http://fitnesse.org/FitNesse.UserGuide.SliM.QueryTableおよびhttp://github.com/jediwhale/fitsharp/blob/master/source/Samples/SlimSamples.csを参照してください

于 2011-02-15T18:56:41.750 に答える