バージョン選択

フォーラム

メニュー

オンライン状況

79 人のユーザが現在オンラインです。 (71 人のユーザが フォーラム を参照しています。)
登録ユーザ: 3
ゲスト: 76
swat kggh gavangtv もっと...

サイト内検索

バグ報告 > その他 > PHPUnitによるテストが失敗する

その他

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
snitta
投稿日時: 2014/1/31 14:13
対応状況: −−−
一人前
登録日: 2013/10/3
居住地: 島根県
投稿: 100
Re: PHPUnitによるテストが失敗する
nanasess 様
早速のご回答ありがとうございます!

引用:
どうしても character_set_client を変更できない環境は別として、通常 PHPUnit を実行する環境(ローカル環境や CIサーバーなど)は設定できると思いますので、my.cnf などで、character_set_client を正しく設定するのが良いのではないでしょうか。


テスト環境の不備という点でしたらまさにおっしゃられる通りですが、今回の問題はエンコーディングだけではなく、テスト毎にテスト条件が変わってしまうという所にあると思います。

具体的には SC_Query のコンストラクタで MDB2::setCharset() を呼んでいますが、MySQL/PostgreSQLの実装では mysql_set_charset() や pg_set_client_encoding() を実行するだけで再接続の考慮はされていません。
同じ Common_TestCase::setUp() を通しても初回のテストではエンコーディングが指定してある、二回目以降のテストでは指定されていない、というのは問題ではないでしょうか…。

参考にした個所はこちらです。
http://svn.ec-cube.net/open_trac/browser/branches/version-2_13-dev/data/class/SC_Query.php?rev=23329#L82
http://svn.ec-cube.net/open_trac/browser/branches/version-2_13-dev/data/module/MDB2/Driver/mysql.php?rev=23329#L626
http://svn.ec-cube.net/open_trac/browser/branches/version-2_13-dev/data/module/MDB2/Driver/pgsql.php?rev=23329#L538

引用:
テストケースの観点からすると、テストとは直接関係のない設定を、テストプログラムにコーディングするのは、あまり良くありません。

勉強になります。確かにあまり気持ちのいいやり方ではないですね。
これはPHPUnitとMDB2の問題ですので phpunit.xml 辺りに追い出す方法がないか探しましたが見つけられませんでした。
# グローバル変数バックアップ機能の切り替えだけはありました。
http://phpunit.de/manual/3.7/ja/appendixes.annotations.html#appendixes.annotations.backupGlobals


----------------
Seiji Nitta
zenith6@gmail.com
https://github.com/zenith6/

フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   PHPUnitによるテストが失敗する snitta 2014/1/31 12:25
     Re: PHPUnitによるテストが失敗する nanasess 2014/1/31 13:22
     » Re: PHPUnitによるテストが失敗する snitta 2014/1/31 14:13
         Re: PHPUnitによるテストが失敗する nanasess 2014/1/31 16:29
           Re: PHPUnitによるテストが失敗する snitta 2014/1/31 19:27
             Re: PHPUnitによるテストが失敗する snitta 2014/2/2 22:03

 



ログイン


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

統計情報

総メンバー数は88,847名です
総投稿数は109,986件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
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.