Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

前提環境 以下のようなフォルダ構成になっている環境を前提とする。 Windows 7環境で確認。 +node_modules +src | +―ソースファイル.js +test +―テストコード.js Windows上でもmocha+istanbulでコードカバレッジを取りたい。 自分向けのメモ書き。 Node.js + Mocha のUT環境で、コードカバレッジを取りたい!で 検索すると、 npm install mocha istanbul したうえで、 istanbul cover _mocha で出来る、ってのがヒットするが、これはLinux環境の話。 Windows環境での実行方法は以下になる。 npm install mocha istanbul は同様。この状態で、 node node_modules\istanbul\lib\cli.js cover node_module
この記事は CureApp Advent Calendar 23日目の記事です。 今日はフロントエンドのカバレッジの話です。 テストカバレッジとは テストカバレッジとは、テストの際にどれくらいの割合のコードがテストされているか・されていないかを集計した情報のことです。 原理としては、JavaScript の場合は、テスト実行前にスクリプトに変換をかけて、各行に、 その行を実行したことを記録するコード を追加し(この変換のことを Instrumentation と言います)、その状態でテストを走らせます。全テストケース終了後に、各行から出力された行の実行情報を集計してまとめることで、カバレッジレポートを作成しています。 テストカバレッジの意味 テストカバレッジが出せるようになると、行ごとにテストされた・されてないという情報を知ることができ、全体で何%がテストされたという情報をトラッキングする
はじめに codecov で typescript のカバレッジを報告しようとしたら、 no-reports-generated error=Error となってグラフが表示されなかった話です。 厳密に言うと、ソースコードは typescript で書いているものの、テストはトランスパイルされた javascript に対して行っている状況です。typescript でテストを書いたらそもそもこの状況は起こらないかもしれません。 codecov とは テストするときによく用いられる指標として、カバレッジ(coverage)ってありますよね。CI の過程でこの工程が手動というのはやはり良くないので、カバレッジを自動で計算して github の README にペタッと貼っておいてくれるというのは、エンジニアの自然な欲求なわけです。 そのうち、codecov がカバーしてくれるのは、"gith
こちらの記事をリスペクトして はてなブックマークからPython人気記事をスクレイピングしてみました。 https://review-of-my-life.blogspot.jp/2017/10/python-web-scraping-data-collection-analysis.html 環境 Ubuntu + python 3.6.3 改修ポイント 掲載のあるコードでは自分の環境で幾つかエラーとなったので対応したり、ほしい情報を付け加えたりとちょっとだけ改修しています。 出力結果の加工はPandasのSeriesとDataFrameを使いました。 Series -> DataFrameへappendです(定番)。 BeautifulSoapを使用しました。 ループ判定処理でpager-nextの判定にはlenではなくオブジェクト取得可否に変換しました。オブジェクト取得できないものに
selenium.common.exceptions.ElementNotVisibleException: Message: {"errorMessage":"Element is not currently visible and may not be manipulated","request":{"headers":{"Accept":"application/json","Accept-Encoding":"identity","Connection":"close","Content-Length":"81","Content-Type":"application/json;charset=UTF-8","Host":"xxx.xxx.xxx.xxx:xxxxx","User-Agent":"Python http auth"},"httpVersion":"1.1","met
はじめに 2018/07/31追記 PhantomJSについて こちらで紹介したPhantomJSは現在、リポジトリがアーカイブされて利用は非推奨です。 手軽に実装すらなら現在は以下とpuppeteerの組み合わせがオススメです。 https://www.npmjs.com/package/@serverless-chrome/lambda こちらの組み合わせの記事ついては別途紹介記事を書きます。 DMM.com #1 Advent Calendar 2017 の14日目を担当します、 @mesh1neko です。 普段はAWSやNode.jsをメインに扱っています 今日はブラウザ操作を極力お手軽にやる組み合わせについて書きます。 ▼このAdvent Calendar について 前日の記事は、 @canacel さんの ReduxにImmutable.JSを適用してみた でした。 これは
祝!Chrome Headless移行完了 私が担当しているプロジェクトのFeatureSpecで、Headless Chromeに移行が完了しました。なかなか大変だったので、ハマったポイントを覚えている限り書いておこうと思います。 Capybara.register_driver周辺 画像をダウンロードしない設定など テーブルに行がなくなるとテーブルごとvisibleがfalse扱いになる DatePickerを使用している箇所にfill_inでデータを入れると、DatePickerが表示されっぱなしになり、被っているボタンが押せなくなる driver依存の操作ができなくなる trigger('click')など driver.network_trafficなど alert, confirm, promptなどのダイアログ系が自動でOKを押されなくなる register_driverでH
batで環境変数を設定するというごく当たり前の方法ですが、忘れそうなのでメモ。 何がしたいか 社内のWEBシステムが使い辛く、本質的じゃない作業に小一時間かかるので、操作を自動化したい!とリーダーからHELP 要件は以下の通り。 WEB操作を自動化したい ソフトのインストールはしない もらったらexeかbatを叩くだけ 1はCasperJSで作って解決しました。 問題は2と3。とにかくすぐ動かせる状態で欲しいとのこと! 結論:バッチファイルを用意し、環境変数をセットするだけ DLしたcasperjsとphantomjsを適当に配置します。(今回はbin配下にした) アプリケーション名/ ├ bin/ │ ├ casperjs/ │ │ ├ casperjs.exe │ │ └ casperjs.js │ └ phantomjs/ │ └ phantomjs.exe ├ // some f
class MessageHandler(Handler): '''メッセージハンドリングクラス''' (中略) def run_crawler(self): ''' クロール共通処理 ''' # ユーザー名を取得 send_user = self.get_send_user() user_info = super().get_user_info(send_user) # チャンネル名を取得 channel_info = self.get_channel_info() # ユーザー情報が存在すれば打刻処理を行う if user_info: if not super().is_all_fields_filled(send_user): self.message.reply('設定されていない項目があるため打刻処理を実行できません。') else: # クロール img_path = self
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? こんにちは! 皆さん映画見てますか!! 映画ってほんとうに良いものですよね!!! 私は昨年ついに、立川シネマシティの会員になってしまいました!!!! 突然ですが映画の話を差し込みます ゴーストバスターズ という1984年の大ヒット映画があります。科学兵器で幽霊退治をする映画です。 最近になってあらためて観ますと、劇中の最終目的地となるビルが呪術的な構造をしていて純度の高いSelenium(セレン)を含んでいる、なんて感じの説明があってニヤリとするわけです。 Seleniumの構造体に巣食うPhantomを退治してしまうのね... という
# !/usr/bin/env ruby require 'capybara' require 'capybara/dsl' require 'selenium-webdriver' chrome_option_arg = ['headless', 'disable-gpu', 'window-size=1680,1050'] Capybara.register_driver(:selenium) do |x| Capybara::Selenium::Driver.new( x, browser: :chrome, desired_capabilities: Selenium::WebDriver::Remote::Capabilities.chrome(chrome_options: { args: chrome_option_arg }) ); end Capybara.javascr
sudo apt-get update sudo apt-get install build-essential chrpath libssl-dev libxft-dev -y sudo apt-get install libfreetype6 libfreetype6-dev -y sudo apt-get install libfontconfig1 libfontconfig1-dev -y cd ~ export PHANTOM_JS="phantomjs-2.1.1-linux-x86_64" wget https://github.com/Medium/phantomjs/releases/download/v2.1.1/$PHANTOM_JS.tar.bz2 sudo tar xvjf $PHANTOM_JS.tar.bz2 sudo mv $PHANTOM_JS /usr
brew install phantomjs だと2018年2月時点でv2.1.1しか手に入らず、古いRailsでのテストのため昔のバージョンがほしいので色々調べてみた。 注意!! 解決できてません。素直に最新版で使えるように、poltergeist等の依存ライブラリをアップデートした方が良いです 結論 macだとインストールできなかった。 npmでインストールできるので、してみる。バージョンを調べる。 $ npm view phantomjs versions $ npm install -g phantomjs@1.9.9 インストールはできたが、起動時にエラー。 child_process.js:380 throw new TypeError('"file" argument must be a non-empty string'); ^ TypeError: "file" argu
問題 表題の通り。 会社のメンバーから質問きたので、解決方法を調査して答えました。 そのときの知見として残しておきます。 phantomjsの準備 ここで書くことじゃないけども、一応こんな感じ echo '{"scripts": {"start": "phantomjs script.js"}}' >> package.json echo 'console.log("Hello, World!"); phantom.exit()' >> script.js npm install --save-dev phantom phantomjs npm start var page = require('webpage').create(); page.viewportSize = { width: 320, height: 480 }; page.clipRect = { top: 0, lef
Javascriptのロジックテストが必要になったのですが、大仰な環境を作るコストも時間もなく、要件的に他のライブラリを組み込む事も難しかったので、普通のChromeのみで出来るテスト環境を構築してみました。 1. 前提条件 Javascriptのみのロジックテスト(画面操作等は行わない) 他ライブラリは使わない インストールは行わない(テスト用の環境構築不要) WindowsとMacで動く事 ブラウザはChrome テストデータと回答はCSVで用意する 2. 選定 上記条件を満たせそうなものとして、JasmineとQUnitが候補にあがりました。 Jasmine vs QUnit detailed comparison as of 2017 - Slant Qunitの方が学習コストが少なそうでしたが、今後の拡張性を考えてJasmineを選択しました。 3. Jasminの導入 Jasm
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く