u-ryo's blog

various information for coding...

Awakening Wave LAN of NetworkManager on the Laptop

| Comments

HPのノートPCで、suspendから覚めても無線LANが復活しないことがよくあったので 困ってたんですが、NetworkManagerをcommand lineからいじれると知って。 null $ nmcli -p nm status null とやると現在の状態を表示し、 やってみるとWLANのstatusがsleepだったので、 null $ sudo nmcli -p nm sleep false null とすると、繋げに行くようになりました。めでたしめでたし。

Simple Web UI Testing by Sikuli

| Comments

Sikuliを使うと、 簡単にWeb UIをtest出来ます。 あ、Web UIに限りませんか。Desktop上のアプリ全て、というべきでしょう。 何と言っても、「このボタンをclick」とかっていう指定が、 当該ボタンの画像で示せる、 その画像を取るのもbrowser上で範囲指定すればいいだけ、 というのがなかなかshockingでした。

Sikuli自体はJava APIがあるので、OS free、script化も可能っぽいです。 SikuliXでGUIでお手軽テスト自動化、のみならず。 ただ、「ここを選んでclickして」とかっていう手順はすんなり書けるんですが、 Captchaを乗り越えるために裏でlogic組みたかったんですけど、 それがどうもSikuliXではうまく出来ない感じがしたので、諦めました。 あぁ、上記のSikuli-apiを使ってJava Test classとして書けば良かったんですね。 出来ないことはないですか。ぼくが見落としただけです。 「ここ」って示す画像を沢山用意しないとならなさそう、です。

じぇじぇ、GebとSikuli、一緒に使えそうですね。 もうGebで書いちゃいましたよトホホ。

Testing Code in Javadoc Using Groovy

| Comments

pythonにはdoctestというのがあって、 method前段に書いた動作例documentをtestとして動かせるそうな。 同じようなのがJavaにも無いかなと探してみると、 groovy.util.JavadocAssertionTestSuiteを使ってJavadocにtesting codeを書けるんだそう。 うさぎ組 プロダクトコードのJavaDocにテストコードを書く方法より。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Sample {

    /**
     * add prefix 'sample'.
     * <pre class="groovyTestCase">
     *    def sample = new org.kyon_mm.Sample()
     *    assert 'sample foo' == sample.prefixSample("foo")
     * </pre>
     */
    String prefixSample(aaa){
        return "sample $aaa"
    }

}

と書いて、

1
2
3
4
5
6
7
8
9
10
11
import junit.framework.Test
import junit.framework.TestCase
import junit.framework.TestSuite

class ReferenceTests extends TestCase {
    static Test suite()  {
        def suite = new TestSuite()
        suite.addTest( JavadocAssertionTestSuite.suite( 'src/main' ) )
        suite
    }
}

と書けば、gradleでもtestしてくれるそう。 こんなのがあったなんてびっくりポンです。 JDoctestというのもありますが、 Javascriptで記述するというのでGroovyの方がいいですよね。