バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

バグ報告 > その他 > 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ペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は73,079名です
総投稿数は102,130件です

投稿数ランキング

1
seasoft
7333
2
468
3078
3
AMUAMU
2712
4
nanasess
2180
5
umebius
2030
6
yuh
1612
7
red
1453
8
h_tanaka
1090
9
tsuji
936
10
fukap
907
11
shutta
835
12
tao_s
793
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

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