競技プログラミングをするにおいて大事なこと、それは事前の環境構築ですよね。
私はpaizaのスキルチェックをやったりしていますが、最近AtCoderを始めてみようかなぁと思いながら調べていたら、
AtCoderをする際にはAtCoder Unit Testという便利な拡張機能があることを知りました。
テストケースを簡単に試せるので便利ですよね。
ソースが公開されていましたので、練習もかねてAtCoderUnitTestのユニットテストをpaizaのスキルチェック用に書き換えてみました。
勝手にやっちゃダメとかだったらすみません。。そのときは記事消しますね。
AtCoderUnitTestの使い方
上記のサイトのAtCoderUnitTestの拡張機能をインストールします。
あとはAtCoderの問題ページで右クリックしてユニットテストを生成をクリックします。
これでクリップボードにコードがコピーされます。
エディタでペーストします。
対応している言語はJava, Kotlin, C#, Python3です。
私はここでちょっと迷ったのですが、対応言語を変える際には
拡張機能の管理→拡張機能のオプションから対応言語を変更します。
Paiza対応における変更点
Paiza用にunittestを変更するにあたって必要な変更は以下になります。
・manifest.jsonの名前、urlを変更。
・content.jsのクリック時イベントの処理を変更
・background.jsのurlを変更
・_locales/ja/message.jsonの内容を変更
manifest.json
manifest.jsonのnameとurlの部分を変更します。
urlはpaizaのスキルチェックの先頭urlをとってきていて、問題個別のurlの部分は*としてます。
これでpaizaのスキルチェックにてこの拡張機能が有効になります。
content.js
onClick関数の中身を以下のように書き換えました。
paizaのスキルチェックのソースを見てみたところ入出力の例はsample-contentクラスに属していましたので、contensとしてそれらを取得しています。
その後、入力と出力の値をとってきています。
background.js
urlの部分を変更します。
これでpaizaのスキルチェックページにて右クリックでコード生成のコマンドが追加されます。
拡張機能の追加
拡張機能を追加する際には「拡張機能を管理」から右上のデベロッパーモードをオンにして「パッケージ化されていない拡張機能を読み込む」を選択します。
書き換えたファイルが入っているフォルダを選択します。
拡張機能が追加されました。(警告が出てましたけど、修正しなくても動作したのでスルーしました。。)
これでpaizaのページにてユニットテストのコードを生成できるようになりました。
まとめ
ここまでお読みいただきありがとうございます。
今回はAtCoder用のユニットテスト生成拡張機能をpaizaに流用してみました。
paizaでもユニットテストができるのは便利ですし、なにより拡張機能やjavascriptの勉強になりました。
ありがとうございました。
コメント