[seasar-dotnet:1565] Re: QuillTestCase でReadXlsWriteDbすると

kubo [E-MAIL ADDRESS DELETED]
2010年 3月 5日 (金) 21:10:48 JST


久保(jflute)です。

> Unitテスト時、Excelに初期データを用意して、結果をExcelで比較して
発生した現象の原因を掴むのが大事なことには変わりはありませんが、
アドバイスとして一つ。

DBFluteとしては、テスト実行時にテストケースごとに
テストデータを用意して登録してテストするのではなく、
DB環境構築時にある程度のケースを網羅したテストデータを
あらかじめ登録しておいてテストをするやリ方を
お奨めしています。具体的にはReplaceSchemaタスクを
利用して、事前にテストデータを登録しておきます。

こちらの記事参考になります。
http://d.hatena.ne.jp/jflute/20100222/1266826083

テストケースごとにExcelを用意すると、
テストケースが増えて来たときに全体のテスト実行が
とても時間が掛かってしまうのと、いくら(DBFluteで)
プログラムはDB変更に強くても、テストデータがDB変更に
弱いということになってしまうからです。

無論、既にReadXlsWriteDbを利用することが決まってるなら、
無理に移行することはないですが、参考までにということで。

#
# 個人的には、ReadXlsWriteDb()を使ったことなくって、
# 周りのDBFluteプロジェクトでも、使ってる人を
# ほとんど聞いたことないという感じです。
#

2010/3/5 kubo <[E-MAIL ADDRESS DELETED]>:
> 久保(jflute)です。
>
> こんばんは
>
> こちらでdfnet-basic-exampleで試してみましたが再現しませんでした。
> WinXP / Quill-1.3.17.0 / DBFlute-0.8.9.12-RC2 / MbUnit 2.3
>
> テストケースのメソッドの中で
> IDataSource s = this.DataSource;
> とやっても、該当のエラーは発生しませんでした。
> this.DataSourceでしっかりDataSourceが取得できました。
> ToString():SelectableDataSourceProxyWithDictionary
>
> ReadXlsWriteDb()を呼び出しているタイミングは、
> テストケースのメソッドの中でしょうか?
> ([MbUnit.Framework.SetUp]の中とかではなく)
>
> また、dfnet-basic-exampleのApp.configと比べて、
> 何か違いがあったりしないでしょうか?
> (あと、業務情報は伏せた状態で提示して頂ければと)
>
> 2010/3/5 ikutirin <[E-MAIL ADDRESS DELETED]>:
>> 返信ありがとうございます。
>>
>> 早速、確認してみました。
>>
>> テストクラスの継承元は、QuillTestCaseを利用していました。
>>
>> バージョンは、
>> Seasar.Quil.dllが1.3.17.0、
>> DBFluteが0.8.9.12です。
>>
>> ためしに、S2TestCaseを継承し、
>> App.configに
>>  <section name="seasar" type="Seasar.Framework.Xml.S2SectionHandler, Seasar" />
>>>>  <seasar>
>>    <configPath>Ado.dicon</configPath>
>>  </seasar>
>> を書き、
>> Ado.dicon(埋め込まれたリソース)に、
>>  <component name="ODP.NET" class="Seasar.Extension.ADO.DataProvider">
>>    <property name="ConnectionType">"Oracle.DataAccess.Client.OracleConnection"</property>
>>    <property name="CommandType">"Oracle.DataAccess.Client.OracleCommand"</property>
>>    <property name="ParameterType">"Oracle.DataAccess.Client.OracleParameter"</property>
>>    <property name="DataAdapterType">"Oracle.DataAccess.Client.OracleDataAdapter"</property>
>>  </component>
>>  <component name="DataSource" class="Seasar.Extension.Tx.Impl.TxDataSource" autoBinding="auto">
>>    <property name="DataProvider">ODP.NET</property>
>>    <property name="ConnectionString">"Data Source=XE;User ID=XXX;Password=XXX"</property>
>>  </component>
>> としてみましたが、結果は同じく、
>> Type: Seasar.Framework.Exceptions.EmptyRuntimeException
>> Source: Seasar.Unit
>> TargetName: _dataSource
>> MessageCode: ESSR0007
>> Args: System.Object[]
>> SimpleMessage: _dataSource should not be null or empty
>> TargetSite: Seasar.Extension.ADO.IDataSource get_DataSource()
>> HelpLink: null
>> Stack:   場所 Seasar.Extension.Unit.S2TestCase.get_DataSource()
>>   場所 Seasar.Extension.Unit.S2TestCase.WriteDb(DataSet dataSet)
>>   場所 Seasar.Extension.Unit.S2TestCase.ReadXlsWriteDb(String path)
>> と出ました。
>>
>> 何がおかしいのでしょうか。
>> 皆目見当もつきません。ヒントでもいただけないでしょうか。
>> よろしくお願いします。
>>
>>
>>
>> 西山はじめ <[E-MAIL ADDRESS DELETED]> wrote:
>>
>>> 西山(hajimeni)です。
>>>
>>> コミッタではありませんし、MbUnit2の環境が無い為恐縮ですが、何点か気になりましたので。
>>>
>>> TestCaseはS2TestCaseを利用されているのでしょうか。
>>> Quill利用時は、S2TestCaseではなく、QuillTestCaseを利用した方がいいと思います。
>>>
>>> dataSourceがNullになるのも、S2TestCaseですとapp.configの<seasar>セクションを見に行くからではないでしょうか。
>>>
>>> また、利用されている Quill と DBFlute.NET のバージョンを明記した方がよろしいかと思います。
>>>
>>> 過去(1.3.13)で同じような問題があるようです。
>>> http://ml.seasar.org/archives/seasar-dotnet/2008-December/001225.html
>>>
>>> 1.3.14では解消されているようです。
>>> https://www.seasar.org/issues/browse/CONTAINERNET-111?page=com.atlassian.jira.plugin.system.issuetabpanels%3Aall-tabpanel
>>>
>>> 以上よろしくお願いいたします。
>>>
>>> 2010年3月5日16:40 ikutirin <[E-MAIL ADDRESS DELETED]>:
>>> > よろしくお願いします。
>>> > Quill+DBFluteで開発しています。
>>> >
>>> > Unitテスト時、Excelに初期データを用意して、結果をExcelで比較して、
>>> > ということをしたいです。
>>> > 初期データのExcel用意し、
>>> > ReadXlsWriteDbメソッドを呼び出したところ、
>>> > [ESSR0007]_dataSource should not be null or empty
>>> > というエラーが出ました。
>>> >
>>> > 意味はわかるのですが、どうやってS2TestCaseの_dataSourceに設定するのか
>>> > わかりません。
>>> > App.configの<quill><dataSources>だけでは駄目なのでしょうか。
>>> > 単一データの検索はExcelを使わず、Assertを使用して問題なくテストできているので
>>> > 設定に関しては間違っていないようにも思います。
>>> >
>>> > どこにどのような設定をすればよいのでしょうか。
>>> > また、確認すべきところはありますでしょうか。
>>> > よろしくお願いします。
>>> > _______________________________________________
>>> > seasar-dotnet mailing list
>>> > [E-MAIL ADDRESS DELETED]
>>> > https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>> >
>>>
>>>
>>>
>>> --
>>> --
>>> 西山はじめ
>>> _______________________________________________
>>> seasar-dotnet mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>
>> _______________________________________________
>> seasar-dotnet mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>
>


seasar-dotnet メーリングリストの案内