These are chat archives for scalikejdbc/ja

7th
Jul 2015
Shunsuke Wada
@letusfly85
Jul 07 2015 01:01

しかしidを受け取らない場合のbatch insertメソッド作るとしたら、それのparameterは List[id以外をのぞいたTupleN] みたいな微妙な型になるのだろうか・・・
こちら、弊社ではOracleを利用しておりますので、auto_incrementされるレコード(エンティティ)を想定としておりませんでした。。

テストクラスも読んでいるのですが、
https://github.com/scalikejdbc/scalikejdbc/blob/master/scalikejdbc-mapper-generator-core/src/test/scala/MapperGeneratorWithH2Spec.scala
こちら、生成されたメソッド自体のテストは行わないという感じでしょうか。

恐縮ですが、以下を作成しました。
scalikejdbc/scalikejdbc#427

Kazuhiro Sera
@seratch
Jul 07 2015 01:10

こちら、生成されたメソッド自体のテストは行わないという感じでしょうか。

scripted test で生成されたコードのコンパイルはチェックされてます。
pull request コメントします。

Shunsuke Wada
@letusfly85
Jul 07 2015 01:15
了解しました。ありがとうございます!
Shunsuke Wada
@letusfly85
Jul 07 2015 02:39
すみません。squashでエラーが発生しており、暫定で一度pushをさせていただきました。
squashちょっと確認して再度pushします。申し訳ないです。。
Shunsuke Wada
@letusfly85
Jul 07 2015 03:05

こちらとても初歩的な質問かもしれず恐縮ですがご教示いただきたく。。

git rebase -i branch_method2generator~4
を実行して、
squashを実施してlogを一つにまとめた後に、
git push origin branch_method2generator
を実施するとエラーになります。

wada@wada:~/repos/scalikejdbc2$ git push origin batch_method2generator
Username for 'https://github.com': letusfly85
Password for 'https://letusfly85@github.com':
To https://github.com/letusfly85/scalikejdbc.git
 ! [rejected]        batch_method2generator -> batch_method2generator (non-fast-forward)
 error: failed to push some refs to 'https://github.com/letusfly85/scalikejdbc.git'
 ヒント: Updates were rejected because the tip of your current branch is behind
 ヒント: its remote counterpart. Integrate the remote changes (e.g.
 ヒント: 'git pull ...') before pushing again.
 ヒント: See the 'Note about fast-forwards' in 'git push --help' for details.
Manabu Nakamura
@gakuzzzz
Jul 07 2015 03:07
rebase によって origin の branch_method2generator と local の origin branch_method2generator が別進化してしまったため、単純に push で commit 追加ができなくなった感じですね。
git push -f origin branch_method2generator
しちゃえばよいかと思います。
Shunsuke Wada
@letusfly85
Jul 07 2015 03:11
ありがとうございます!
pushすることができました!
Shunsuke Wada
@letusfly85
Jul 07 2015 12:19

非常にいまさらですが、pushしてしまうまえに、test-onlyをしたいとおもって、いろいろと漁っています。

generator周りについては、下記を参考に動かしてみようと思いますが、あってますでしょうか。
https://github.com/scalikejdbc/scalikejdbc/blob/master/scalikejdbc-mapper-generator/src/sbt-test/scalikejdbc-mapper-generator/gen/test

別のtreeや、projectを見る必要がある場合、教えていただきたく。。
ちょっとよろしくないpushを連発しており恥ずかしい限りです。。

kenji yoshida
@xuwei-k
Jul 07 2015 12:32
別のtreeやprojectを見る必要はない(というか見ても情報ない)です
mapper-generatorのテスト方法自体は色々ありえますけど、いずれにせよ、まずは一旦publishLocalするか、こういうこと http://d.hatena.ne.jp/xuwei/20120920/1348168081 して、変更したsbt-pluginを使える状態にする必要がありますね
sbt pluginそのもののscripted testという仕組みはこれ http://eed3si9n.com/ja/testing-sbt-plugins 見てください
kenji yoshida
@xuwei-k
Jul 07 2015 12:38
scalikejdbcは、それ以外にもtravis上で
「複数のデータベースでテストしてるので、環境変数から指定された接続情報のpropertiesファイルをコピー」
というのをやってたりして、より一層複雑(かつ色んなDBやscalaのversionで組み合わせ爆発起こってとても時間がかかる)になってます
Shunsuke Wada
@letusfly85
Jul 07 2015 12:38

あ、、publish-localはしていてローカルの簡易テストは終わっています。ので、本当によくないpushをしていました。。

情報ありがとうございます。サイト、がっつり見ます。

kenji yoshida
@xuwei-k
Jul 07 2015 12:39
ローカルの簡易テストってどれのこと言ってますか?
Shunsuke Wada
@letusfly85
Jul 07 2015 12:39
testOnly app.models.ProgrammersTest
をやりたかったです。
ので、
kenji yoshida
@xuwei-k
Jul 07 2015 12:40
あー、今のところそれだけ簡単にテストできるようにはなってないので、
Shunsuke Wada
@letusfly85
Jul 07 2015 12:40
ProgrammersをscalikejdbcGenForce programmersして、クラス生成する必要があるのかどうかを見ていました。
な、なるほど。。
publishLocalして cd scalikejdbc-mapper-generator/src/sbt-test/scalikejdbc-mapper-generator/gen してそこで実際にsbt立ちあげて試行錯誤、くらいしかないですね
Shunsuke Wada
@letusfly85
Jul 07 2015 12:42
ありがとうございます。
scripted testを利用したことがないので、これを機に覚えてみたいと思います。
kenji yoshida
@xuwei-k
Jul 07 2015 12:48

いずれにせよちゃんとやろうとするとMySQLとポスグレと全部用意するの面倒なので、scripted test部分だけ実行したいときは、自分は

  • 一旦 .travis.yml いじって scripted-test 以外を無効にする(テスト時間短縮のため) xuwei-k/scalikejdbc@47fe31a
  • forkした自分のscalikejdbcのリポジトリでtravisを有効にしておく
  • travis成功するまで何度も(pull reqするまえに)自分のリポジトリで試す
  • 成功したらtravis.ymlの変更を戻してコミット整理
  • pull req出す

みたいな、ある意味残念な?ことしてますね・・・

Shunsuke Wada
@letusfly85
Jul 07 2015 12:55

travis成功するまで何度も(pull reqするまえに)自分のリポジトリで試す

このサイクルをできるように、上記の流れもscripted test理解ののちにどこかで試してみます。

PRを見てくださってる方々も、リズム感は早いほうがいいですよね。。

いったんtravisはGreenになりましたが、結構時間がかかり、かつ教えていただいたので本当に反省、勉強になりました。
ありがとうございます。