YSRKEN / KanColleSimulator_KAI

New Simulator of Kantai Collection by C++ and C#
Other
14 stars 2 forks source link

CIの導入 #152

Open yumetodo opened 8 years ago

yumetodo commented 8 years ago

とりあえずテストケースは後回しでもいいので、CIによる自動ビルドテストを導入するべきかと思う。

150 みたいなおバカをせずにすむ。

Windows環境

これはAppVeyorがあるしVSのプロジェクト使えるので問題ない

Linux環境

149 の作業が終わればCUIはビルドできるようになるはず。

GUIは・・・ どうなんだろう。mono動かそうとしたらjsonのdllない、で弾かれたけど、どうにかなるものなのかな?

yumetodo commented 7 years ago

追加で、csvの自動チェックもするべきと #155 で分かった。

./ships.csv

[0-9]+,[^,]+,[0-9]+,[0-9]+/[0-9]+.[0-9]+/[0-9]+,[0-9]+/[0-9]+,[0-9]+/[0-9]+,[0-9]+/[0-9]+,[0-9]+/[0-9]+,[0-9]+,[0-9],[0-9],[0-9]+/[0-9]+/[0-9]+/[0-9]+/[0-9]+,[0-9]+/[0-9]+,[0-9]+/[0-9]+,[0-9]+/[0-9]+,[-0-9]+/[-0-9]+/[-0-9]+/[-0-9]+/[-0-9]+,[0-9]

./ships_all.csv

7c3bcc6d04449d3fb79161b3f00249395ecd6ede でなんかやってたけど、なんでこれあるんだっけ? commit logは

・ships.csvを修正。具体的には、以前のships.csvをships_all.csvとして、nullを含む項目を排除したものを新しいships.csvとした ・それに合わせ、KCS_CUI内のships.csvとslotitems.csvを修正した

となっているけど

@YSRKEN

./slotitems.csv

[0-9]+,[^,]+,[^,]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+

./KCS_CUI/source/ships.csv

-> ./ships.csvから自動生成させるべき

./KCS_CUI/source/slotitems.csv

->./slotitems.csvから自動生成させるべき


あとこのチェックをどの言語でやるかという問題。正規表現とFileIOが使いやすいかつテストフレームワークがあってTravis-CIかShippableで実行できるスクリプト言語がいいと思う。Ruby+Rspecか?Node.js+YARNか?(rubyわからないです、どうなんでしょう? @YSRKEN )

YSRKEN commented 7 years ago

7c3bcc6 の奴は、行に「null」が含まれるcsvを読ませるとエラーが出たらマズいと思い、「本来のデータ」であるships_all.csvと、「ソフトで使用するデータ」であるships.csvを分けたというわけです。 ただ、 b44aae5 辺りで、「ships.csvについては、一部分からない(nullな)部分を適当に補完しておこう」といった方針で再編集しただけのことです。 また、「CIで走らせる場合にどう書けばいいか」を存じませんので後半についてはなんとも

YSRKEN commented 7 years ago

チェックするコードはとりあえずこんな感じかしらね

pattern1 = /[0-9]+,[^,]+,[0-9]+,[0-9]+\/[0-9]+.[0-9]+\/[0-9]+,[0-9]+\/[0-9]+,[0-9]+\/[0-9]+,[0-9]+\/[0-9]+,[0-9]+\/[0-9]+,[0-9]+,[0-9],[0-9],[0-9]+\/[0-9]+\/[0-9]+\/[0-9]+\/[0-9]+,[0-9]+\/[0-9]+,[0-9]+\/[0-9]+,[0-9]+\/[0-9]+,[-0-9]+\/[-0-9]+\/[-0-9]+\/[-0-9]+\/[-0-9]+,[0-9]/
File.read('ships.csv', encoding:'Shift_JIS').split("\n").each_with_index{|line, i|
    next if i == 0
    unless line =~ pattern1
        puts line
        puts 'false'
        exit
    end
}
puts 'true'

pattern2 = /[0-9]+,[^,]+,[^,]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+,[-0-9]+/
File.read('slotitems.csv', encoding:'Shift_JIS').split("\n").each_with_index{|line, i|
    next if i == 0
    unless line =~ pattern2
        puts line
        puts 'false'
        exit
    end
}
puts 'true'