プライズ・プライズ!
↑ ↑ ↑ ↑ ↑
アンケートに答えるだけで300円〜1000円ゲット!!
1日5分メールやサイトをクリックだけでも簡単に稼げる!!
人気No1アンケートサイト「prize-prize」

perlのUnitTestについて - その2 -

perlのテストにはどんなモジュールが用意されているのか


Test::SimpleM


最も簡単なテストモジュールです。

簡単にしようできるの使ってみてください。
いかがテストコードのサンプル。

■テストコード


■実行結果


■テスト失敗時




Test::Harness


テストコードをまとめて実行するためのツールがあります。
それはTest::Harnessをインストールすることでインストールされる「proveコマンド」です。


proveによって複数のテストを実行した結果が実行、表示されます。
このproveスクリプトはTest::Harnessモジュールを使用しています。

このテスト結果をとりまとめているのは「TAP」にあります。


TAP


TAPとはテスト結果出力するという単純なプロトコルです。

「ok」「not ok」と表示するだけの単純作業です。

このプロトコルはperl以外のプログラミング言語でも使用できます。








Test::More


Test::Simpleは簡単で使いやすいが、シンプルすぎて応用がききません。

なので私は、「Test::More」を使用しています。

Test::Simpleの「ok」以外に主な機能として以下が用意されています。

C言語libtap
PythonPyTap
PHPSimpleTestのTAP拡張





is(
x, $y)
$xが$yと等しいか
like($got, qr/expected/)正規表現にマッチしているか
cmp_ok($got, '<', $expected)比較
is_deeply($got, $expected)ネストした構造のデータが等しいかどうか


Test::Simpleを使用するならば、こちらを利用したほうが良いでしょう。



perlのUnitTestについて - その1 -

最近、仕事での業務がJavaからperlやphpなどのスクリプト言語になりました。

javaと違ってperlなどは型がきっちりとしていないので少しやりにくいです。。。

今回は、perlでシステムを実装する上で行う単体テストについてまとめます。

JavaでいうJUitです。


テストコードの重要性


そもそもなんでテストコードを作らなければいけないのか?

もしテストコードを作成せずにテストデータを用意して、エビデンスをとって・・・という従来の方法で単体テストを行ったとします。

もしリリース後、実装したコードに不具合があった場合はどうしますか?

再度テストデータをINSERTして処理を実行してエビデンスをとって・・・

また、修正した結果が以前と100%同じ結果を得られている100%の自信がありますか?

システムが大きくなるにつれて今回修正したコードが他の処理に影響を与えていたいという100%の自信がありますか?

もしテストコードを容易していれば、上記テストがテストコードを実行するだけで完了してしまいます。

すべてTRUEで返ってくればその処理は正常に動作していることがわかり、また自分たちの安心感にもつながります。



継続テスト


次に大切なことは継続テストです。

簡単にいうとでテストを定時実行させること。

方法何通りか存在します。

■cron
もっともシンプルな方法で、cronで定時にmake testを事項するように設定する方法。


■buildbot
Pythonで書かれた継続的テストのためのソフトウェア

Perlにも対応しているので容易に試すことができます


■Test::Chimps
継続的テストサーバとそのクライアントを提供します

Perlで書かれているのですが,依存モジュールが多いのと,インストールが面倒です。

ちょっと微妙・・・



気になる方は使ってみてください。

Apache2.2 + PHP5.2 インストールしてみました。 - PHP編 -

Apacheの設定はこちらから
http://kanamehackday.blog17.fc2.com/blog-entry-235.html


今回はPHPの設定です。

バージョンはPHP5.2を使用しています。


PHPの設定


1.PHP5のダウンロード
http://www.php.net/downloads.php

Windows Binariesの「PHP 5.3.0 zip package 」

5.3.0は日地用ファイルが存在しないため、バージョンを「PHP 5.2.11 zip package」に変更

・jp.php.netのリンクからダウンロード


2.php-5.2.11-Win32.zipの解凍
解凍後にフォルダ名を
php-5.2.11-Win32

php
に変更しておきましょう。


3. iniファイルの書き換え
C:\phpにある「php.ini-dist」ファイルを
C:\WINDOWS
にコピーします。

コピー後にファイル名を「php.ini」に変更します。


4.dllファイルのコピー
【php5の場合】
C:\WINDOWS\system32に以下ファイルをコピーします
・php5ts.dll
・libmysql.dll

【php4の場合】
C:\WINDOWS\system32に以下ファイルをコピーします
・php4ts.dll
・dlls\libmysql.dll



5.php.iniファイルの編集
■115行目:出力変換を有効に
;output_handler =

output_handler =mb_output_handler


■447行目:HTTPヘッダcharsetを設定
;default_charset = "iso-8859-1"

default_charset = "EUC-JP"


■475行目:拡張モジュールパス
extension_dir = "./"

extension_dir = "C:\php\ext"


■599行目〜:dllのコメントアウト解除
extension=php_mbstring.dll
extension=php_mysql.dll


■1165行目:デフォルト言語を日本語へ
;mbstring.language = Japanese

mbstring.language = Japanese


■1170行目:内部エンコーディングの設定
;mbstring.internal_encoding = EUC-JP

mbstring.internal_encoding = EUC-JP


■1173行目:HTTP入力をauto
;mbstring.http_input = auto

mbstring.http_input = auto


■1177行目:HTTP出力をEUC-JP
;mbstring.http_output = SJIS

mbstring.http_output = EUC-JP


■1184行目:HTTP入力の変換を有効に
;mbstring.encoding_translation = Off

;mbstring.encoding_translation = On


■1188行目:デフォルトの文字エンコーディング検出の順序をautoに設定
;mbstring.detect_order = auto

mbstring.detect_order = auto


■1192行目:無効な文字の代替文字を検出しない
;mbstring.substitute_character = none;

mbstring.substitute_character = none;



以上でPHPの設定は完了です。

ちゃんと反映されているか確認をするために、phpinfo.phpを作成します


<?php
   phpinfo();
?>


C:\Apache\htdocs
に配置します。


Apacheを再起動させて

http://localhost/phpinfo.php

以下機能が表示されていることを確認してください
・mbstring
・MySQL

表示されていれば、完了です。

おつかれさまでした。

Apache2.2 + PHP5.2 インストールしてみました。 - Apache編 -

最近JAVAからPHPを使う業務へと変わってきたので

自宅PCにApacheとPHPといれてみました。

以前にも入れたのですが、慣れないとめんどくさい・・・

まずApacheのインストール/設定です。

バージョンはApache2.2

Apache


1.まず以下サイトへアクセス
http://httpd.apache.org/download.cgi


2.インストールパッケージをダウンロード
「Apache HTTP Server 2.2.14 is the best available version」
Win32 Binaryの
「apache_2.2.14-win32-x86-no_ssl.msi」をダウンロード


3.インストール



4.Apacheの設定

C:\Apache\conf\httpd.conf
のファイルを編集します。

■phpモジュールの追加
LoadModule php5_module C:/php/php5apache2.dll
を追記(174行目あたり)

しかしphp5apache2.dllはApache2.0用と判明したため
php5apache2_2.dllを指定


■ファイルタイプの指定
phpの拡張子を認識させます。
#
# Filters allow you to process content before it is sent to the client.
#
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
#
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

5、Apache再起動
起動失敗・・・
httpd.exe: Syntax error on line 127 of C:/Apache/conf/httpd.conf: Cannot load C:
/php/php5apache2.dll into server: \x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83\x82\
x83W\x83\x85\x81[\x83\x8b\x82\xaa\x8c\xa9\x82\xc2\x82\xa9\x82\xe8\x82\xdc\x82\xb
9\x82\xf1\x81B
Note the errors or messages above, and press the key to exit. 25...

調べてみるとphp5apache2.dllはApache2.2では動かないらしく、Apache2.0用らしい。

なので、php5apache2_2.dllをphpモジュールに指定しましょう。


これでApacheの設定は完了です。


次回はPHPのインストールと設定です。
http://kanamehackday.blog17.fc2.com/blog-entry-236.html




Dockコネクター用ネックストラップ [DockStrap for iPod/iPhone]

今日はちょっとほしいものの紹介

「Dockコネクター用ネックストラップ [DockStrap for iPod/iPhone] 」



自分もiPodを持っていますが、バッグの中にiPodを入れて聞いたり、ジャケットのポケットに入れたりと工夫しながら皆さん使用していると思います。

けど、これがあればお洒落にiPodを持ち歩くことができます。

iPodのDockコネクターにつなげるだけなので簡単に装着でき、耐久性も2kg程度までOKらしいのでiPod nanoなら落ちる心配もなく、iPhoneでも問題ありません。

個人的にはiPhoneを首にぶら下げるのはちょっと重い気もしますが・・・w


仕様
素材 シリコン(ストラップ)
プラスチック(Dockコネクター)
製品サイズ 26 × 25 × 7mm(W × H × D)(ストラップ部を除く/コネクター部)
ストラップ長 40cm
製品重量 11g
耐荷重 2kg
対応製品 すべてのDockコネクター装備のiPod/iPhone



« | HOME |  »
FC2ブログ
cork_board template Designed by WEB Memorandum