node.jsでSelenium Webdriverを使って自動テストを書いてみようと思い、 適当に検索して↓のコードを書いたのですが、エラーになってしまいました。
Selenium Webdriverのバージョンは4.0.0-alpha.1です。
const {Builder, By, Condition, firefox} = require('selenium-webdriver'); const t = require('selenium-webdriver/testing'); const expect = require('expect.js'); const assert = require('assert'); let driver; t.describe('user name test', () => { t.before( () => { driver = new Builder() .forBrowser('firefox') .build(); }); t.after( () => { driver.quit(); }); t.it('username is required', () => { driver.get('http://localhost:8080/').then( () => { driver.wait(until.elementLocated(By.id('user_name')), 2000) .then( (usernameTextbox) => { driver.wait(until.elementLocated(By.id('user_name')), 2000) .then( (button) => { usernameTextbox.
Haskellは汎用の純関数型プログラミング言語です。
これまで入門書を読んだ程度で、あまりコードを書いたことがありませんでしたが、 最近また興味が出てきたので、Haskellを使ってなにかコードを書いていきたいと思います。
ひとまず今回は、Haskellの環境構築を行います。
ArchWikiでHaskellのページをみると、パッケージ管理の方法がいくつかあるようです。
依存関係でハマりたくないので、そのリスクが低そうなstackを選択することにしました。
stackは公式リポジトリに登録されているので、簡単にインストールできそうです。
$ sudo pacman -S stack これでstackのインストールが完了しました。
ghcも一緒にインストールされるので、基本的なインストールはこれで完了してしまいました。
次に、私はneovimを使っているので、neovimでHaskellを書くための設定を行います。
以前にHaskellを触ったときはghc-mod, deoplete, neco-ghcでコード補完していましたが、 いま見るとghc-modがdeprecatedになっているようです。
新しく環境を作る場合、haskell-ide-engineを使うのが良さそうなので、 LanguageClient-neovimとhaskell-ide-engineをインストールすることにしました。
まず、haskell-ide-engineをインストールします。
$ git clone https://github.com/haskell/haskell-ide-engine --recurse-submodules $ cd haskell-ide-engine $ make hie-8.6.3 $ make build-doc-8.6.3 かなり時間がかかりますが、無事インストールできました。 容量もかなり食ってそうなので、ディスクの空き容量が少ない状態では実行しないほうが いいかもしれません。
続いて、LanguageClient-neovimの設定を行います。readmeのINSTALLの通りに進めます。
deinユーザーなので、deinからインストールを行います。
init.vimに次のように記述します。
call dein#add('autozimu/LanguageClient-neovim', { \ 'rev': 'next', \ 'build': 'bash install.sh', \ }) そしてneovimを再起動し、次のコマンドを実行します。
:call dein#install() これでインストールは完了しました。
キーマップの設定が必要なので、haskell-ide-engineのreadmeを参考に設定します。
let g:LanguageClient_serverCommands = { 'haskell': ['hie-wrapper'] } let g:LanguageClient_rootMakers = ['*.cabal', 'stack.
プログラマならlsのソースくらい読むべきという言葉を耳にしました。
私は自分のことをプログラマだと思っているのですが、そういえば他人のソースコードを読むことはあまりしません。
良い機会なのでlsのソースコードを眺めてみることにしました。
$ uname -a Linux archvm 4.20.7-arch1-1-ARCH #1 SMP PREEMPT Wed Feb 6 18:42:40 UTC 2019 x86_64 GNU/Linux 私はArch LinuxをVirtualBoxで仮想化して使っています。
Arch Linuxには、Arch Build System(ABS)というパッケージ作成のための仕組みが用意されており、 これを使えば公式リポジトリやArch User Repository(AUR)に登録されているプログラムのコードを取得できそうです。
普段はpacmanで必要なプログラムをインストールするだけなので、ABSを使うのも初めてでしたが、 ArchWikiを頼りにコマンドを実行しました。
私はSVNよりもGitのほうが好みなので、aspを使用することにしました。
$ sudo pacman -S asp $ mkdir tmp $ cd tmp $ asp checkout coreutils 問題なくチェックアウトされ、coreutilsディレクトリが作成されました。
$ cd coreutils/trunk/ リポジトリの中にはPKGBUILDファイルがあるだけです。
makepkgコマンドを実行すれば必要なソースコードを取得し、ビルドが実行されるはずです。
$ makepkg ==> Making package: coreutils 8.30-1 (XXXXXXXXXXX) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Retrieving sources.