日々常々

ふつうのプログラマがあたりまえにしたいこと。

不完全なHTTPサーバとGradleさんと

ぼくらの@さんがなんか楽しげなことをやっていて、テストがあったのでとりあえず動かそうと思ったのです。


gistに複数ファイルある時はcloneすれば良いんですよね。Public Clone URLって書いてるやつです。

でもcloneしたは良いけど、どうやって動かしたら良いかわからない。そこで当然Gradleですね。おもむろに vi build.gradle と入力し、暫く待てば出来上がります。簡単ですね。*1


それで実行すると、コケました。hello.txtとかがみつかんねーよって。どうやらディレクトリ構造はこんな感じだったようです。

.
└── src
    ├── main
    │   ├── java
    │   │   └── httpserver
    │   │       └── HttpServer.java
    │   └── webapp
    │       ├── hello.json
    │       └── hello.txt
    └── test
        └── java
            └── httpserver
                └── HttpServerTest.java

ビルド時にディレクトリ作ってそこに放り込むとかしようと思ったんですが、もう諦めてテストコードのwebappDirを変えました。なんか負けた気分。


「これで大丈夫だろう」と思ってると、テストが落ちる。たまに。

Connection refused……むぐぐ。

今回のテストは Rule を使用することで、テストメソッドごとにHTTPサーバを起動し、URLからアクセスしています。一つのテストクラスでやってるくせに何気に壮大です。その気になってテスト中にブラウザのアドレスバーに http://localhost:8080/hello.txt とか入れれば、普通にファイルが見れたりします。

まーそんなもんだから、サーバ上げ下げやってると。ほら。ね?(ちゃんとわかってない)
とりあえず今回はClassRuleで、一回だけ起動するようにした。

      • -

とかやってたら https://github.com/backpaper0/httpserver(GitHub) にうつってました。これでディレクトリもよゆーですね!

*1:gradle力足りなくてファイル指定のとこが無駄に冗長になってる気がしてる。