バージョン選択

フォーラム

メニュー

オンライン状況

28 人のユーザが現在オンラインです。 (15 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 27
h_tanaka もっと...

サイト内検索

質問 > その他 > PHPUnitの実行について

その他

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
suruseas
投稿日時: 2013/5/21 18:41
対応状況: −−−
半人前
登録日: 2013/5/8
居住地:
投稿: 21
Re: PHPUnitの実行について
返信が遅くなりまして申し訳ございません。

修正したところ、以下2カ所エラーが発生します。
消費税計算が絡んでいると思いますのでおそらくここも修正しなければならないと思われましたのでご報告致します。


SC_Helper_Purchase_setShipmentItemTempTest::testSetShipmentItemTemp_製品情報が既に存在する場合_存在する情報が価格に反映される
Failed asserting that two arrays are equal.
--- Expected
+++ Actual
@@ @@
 Array (
     'shipping_id' => '1001'
     'product_class_id' => '1001'
     'quantity' => 10
     'price' => 9000
-    'total_inctax' => 94500.0
+    'total_inctax' => 90000.0
     'productsClass' => Array (...)
 )

tests/class/Common_TestCase.php:41
tests/class/helper/SC_Helper_Purchase/SC_Helper_Purchase_setShipmentItemTempTest.php:66



SC_Helper_Purchase_setShipmentItemTempTest::testSetShipmentItemTemp_製品情報が存在しない場合_DBから取得した値が反映される
Failed asserting that two arrays are equal.
--- Expected
+++ Actual
@@ @@
 Array (
     'shipping_id' => '1001'
     'product_class_id' => '1002'
     'quantity' => 10
     'price' => '2500'
-    'total_inctax' => 26250.0
+    'total_inctax' => 25000.0
 )

tests/class/Common_TestCase.php:41
tests/class/helper/SC_Helper_Purchase/SC_Helper_Purchase_setShipmentItemTempTest.php:83


ただ修正をご提示していただいたおかげで、既存テストがすべて通るようになってより安心できるようになりました。ご対応ありがとうございます!
nanasess
投稿日時: 2013/5/17 19:10
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2314
Re: PHPUnitの実行について
とり急ぎ、以下の修正で、既存のテストが通るようになりました。
(一部は未解決ですが。。。)

https://github.com/nanasess/ec-cube/commit/8fbddb47ec0e34b3b1dda570d3bcdcf4c9640f0e

travis-ci でも、テストが通るようにしてみました。
https://travis-ci.org/nanasess/ec-cube
suruseas
投稿日時: 2013/5/14 16:55
対応状況: 解決済
半人前
登録日: 2013/5/8
居住地:
投稿: 21
Re: PHPUnitの実行について
とりあえずJenkinsの設定含めやりたいことはできるようになったので解決済に変更します。

ご対応ありがとうございました!
suruseas
投稿日時: 2013/5/13 14:13
対応状況: −−−
半人前
登録日: 2013/5/8
居住地:
投稿: 21
Re: PHPUnitの実行について
引用:

>たぶんここを解決してもSC_Helper_Purchase_getOrderDetailTest.phpが落ちると思います。

はい、予言通りになりました。


エラーは以下のようになりました。(抜粋)

引用:

2013/05/13 13:58:44 [/usr/bin/phpunit] Fatal error(E_USER_ERROR): DB処理でエラー
が発生しました。
SQL: [INSERT INTO dtb_order_detail(order_detail_id,order_id,product_id,product_class_id,product_code,product_name,classcategory_name1,classcategory_name2,price,quantity,point_rate,tax_rate,tax_rule) SELECT ?,?,?,?,?,?,?,?,?,?,?,?,?]
MDB2 Error: unknown error
prepare: [Error message: Unable to create prepared statement handle]
[Last executed query: DEALLOCATE PREPARE mdb2_statement_pgsql_5261ae1c3c791a11e9451b66541e389e88e7bfdee0]
[Native message: ERROR: リレーション"dtb_order_detail"の列"tax_rate"は存在しま>せん


これっておそらく
http://svn.ec-cube.net/open_trac/ticket/1730

の修正がテストケースだけ反映されている気がします…。

テストケースを修正して(不要なtax_rate、tax_ruleを削除)してとりあえずテストが最後まで走ることは確認(失敗が10件でますけど)できました。
suruseas
投稿日時: 2013/5/13 13:53
対応状況: −−−
半人前
登録日: 2013/5/8
居住地:
投稿: 21
Re: PHPUnitの実行について
引用:

上記修正を試したところ、SC_Product_setProductStatusTest.phpのテストは通る事を確認しました。

>擬似的な動作のため、管理画面周りのセッション情報が欠落しているのでは?

なるほど、セッション情報がセットされていなかったわけですね!

>数値の 0 だと空文字判定される気が。
>$_SESSION['member_id'] = '0'; ならいけるのではないでしょうか。

テストを斜め読みしましたが、テスト用のメンバーをsetupされているようではなさげなのでdtb_memberの実データ見に行っているんじゃないでしょうか。インストール直後はmember_id=1,2のメンバーしかテーブルに存在しなかったのでSelect出来ずにNULLセットされたのだと思われます。
suruseas
投稿日時: 2013/5/13 13:35
対応状況: −−−
半人前
登録日: 2013/5/8
居住地:
投稿: 21
Re: PHPUnitの実行について
すみません、誤解を招く書き方した上に今更の返信で申し訳ありません。。。
red様の指示通りNOTNULL制約を外して、当初発生していた例外(SC_Product_setProductStatusTest.testSetProductStatus_登録した商品ステータスを返す)が解消し、後続テストができるようになりました。

>たぶんここを解決してもSC_Helper_Purchase_getOrderDetailTest.phpが落ちると思います。

はい、予言通りになりました。

>あ、見ているlogは data/logs/error.log です
>こちらに表示されてないでしょうか?

私の目は節穴でしょうか(笑)
ありがとうございます!!
red
投稿日時: 2013/5/10 19:13
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1570
Re: PHPUnitの実行について
あ、見ているlogは data/logs/error.log です
こちらに表示されてないでしょうか?


----------------
EC-CUBEのカスタマイズ、トラブル解決承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

red
投稿日時: 2013/5/10 19:10
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1570
Re: PHPUnitの実行について
この修正っておかしいような気が…
詳細に確認したわけではないですがmysqlではエラーが出なかったのでおそらくpostgresとmysqlのスキーマの差異か何かで落ちているのではないかと思います


----------------
EC-CUBEのカスタマイズ、トラブル解決承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

red
投稿日時: 2013/5/10 19:09
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1570
Re: PHPUnitの実行について
むむ、なぜでしょう?
インストールして実行しただけなのですが…
ちょっと調べてみます

たぶんここを解決してもSC_Helper_Purchase_getOrderDetailTest.phpが落ちると思います。
sql的なエラーが起きた場合でもテストを最後まで実行できるように本体に幾つかコミットしてみたのですが、mysqlとpostgresで挙動が違ってちょっと解決できていないのでログを見てコツコツやるしかないのが辛いところです


----------------
EC-CUBEのカスタマイズ、トラブル解決承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

seasoft
投稿日時: 2013/5/10 19:00
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: PHPUnitの実行について
> 数値の 0 だと空文字判定される気が。

昔の EC-CUBE には、そんな不具合もありましたが、現行バージョンでは直っていたはずです。

でも、エンバグやテストシステムの不具合の懸念もありますので、是非とも試して頂きたいです。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

(1) 2 3 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,498名です
総投稿数は110,104件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1656
8
red
1570
9
mcontact
1307
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.