月: 2014年4月

gitで間違って違うリポジトリからpullしてしまった場合の対処方法

gitで間違って違うリポジトリからpullしてしまった場合の対処方法

間違って焦ったのでメモ。
まずはgit logで状況を確認。

■最新のコミットをなかったことにする

$ git reset HEAD^

■git resetしただけではpullしてしまったファイルが残ってしまっているので不要ファイルを削除する

「git clean」作業ツリーのバージョン管理外のファイルを削除する

・削除対象となるファイルを確認する

$ git clean -n

・削除対象のファイルを削除する

$ git clean -f

gitで変更してしまったファイルをまとめて元に戻したい場合

gitで変更してしまったファイルをまとめて元に戻したい場合

「git checkout」は指定したブランチ、タグ、コミットに作業ツリーを切り替えたり、
別ブランチで作業したい場合、特定のコミットからファイルを取り出したい場合など
様々な場面で利用します。

事前に現在変更した内容を確認します。

$ git status

■1ファイルずつ現在のブランチのコミット時の状態に戻したい場合

$ git checkout -- ファイル名

■まとめて現在のブランチのコミット時の状態に戻したい場合

$ git checkout .

↑これが知りたかっただけ。。

■参考

git checkout 使い方

PHP:BDDを試す。Behat+Mink+Selenium編

PHP:BDDを試す。Behat+Mink+Selenium編

前回のページはこちら

今回はSeleniumも利用し実際にブラウザが立ち上がって挙動が確認できるようにする。
※前回のcomposer.jsonで「mink-selenium2-driver」入れてるので今回はcomposerは触らない。

Video: Quickstart to testing with Behat, Mink, and Selenium

今回も上記サイトを参考に。

今回の構成
■SeleniumServer
OS:Windows7
IP:192.168.1.10
seleniumで使うブラウザIE11
javaインストール済み

■開発サーバ
OS:CentOS6.5(Vagrant環境↑のwindows内にある)
IP:192.168.1.226

■SeleniumとIEのドライバーの取得(※SeleniumServer側PCでの作業)

http://docs.seleniumhq.org/download/
上記ページ内の「Selenium Server (formerly the Selenium RC Server)」をダウンロード
現時点では「Download version 2.40.0」

IEのドライバは「The Internet Explorer Driver Server」
Download version 2.40.0 for (recommended)
32 bit Windows IE
64 bit Windows IE
上記のどちらかを環境に合わせてダウンロードする。zipなので解凍して中身を
Seleniumの本体と同じところにおいておく

■Seleniumを起動しておく(※SeleniumServer側PCでの作業)

C:>java -jar selenium-server-standalone-2.40.0.jar -Dwebdriver.ie.driver=.\IEDriverServer.exe

※IEを使う場合の起動方法

■behatの設定ファイルであるbehat.ymlの変更(以下開発サーバ側での作業)

$ vim behat.yml
default:
  paths:
    features: features
    bootstrap: %behat.paths.features%/bootstrap
  context:
    parameters:
      browser: ie
      javascript_session: webdriver
  extensions:
    Behat\MinkExtension\Extension:
      browser_name: ie
      goutte: ~
      selenium2:
        wd_host: 'http://192.168.1.10:4444/wd/hub'
        capabilities: { "browser": "ie", "version": "11"}

■test.featureシナリオを変更

$ vim features/test.feature
Feature: Drupal.org search
  In order to find modules on Drupal.org
  As a Drupal user
  I need to be able to use Drupal.org search

  @javascript
  Scenario: Searching for "behat"
    Given I go to "https://drupal.org"
    When I fill in "Search Drupal.org" with "behat"
    And I press "Search"
    Then I should see "Behat Drupal Extension"

■behatを実行

$ ./vendor/bin/behat

※IEが立ち上がらない場合は以下を試す。
インターネットオプションのセキュリティ設定を統一する。
インターネットオプション>セキュリティ>4つの項目(インターネット、ローカルイントラネット、信頼済みサイト、制限済みサイト)
の保護モードを有効にするチェックを全て外す(もしくは全てチェックする)。
その後IEを再起動する。

PHP:BDDを試す。Behat+Mink編

PHP:BDDを試す。Behat+Mink編

BDDに興味をもったのでまずはbehatを試してみる。

Video: Quickstart to testing with Behat, Mink, and Selenium

上記の動画を参考に写経。

今回の構成
■開発サーバ
OS:CentOS6.5(Vagrant環境:windows7内にある)
IP:192.168.1.226

■composerの設定

適当なフォルダに移動してcomposer.jsonを作成する。
※composer自体はインストールしてるとする。

$ vim composer.json
{
  "require": {
    "behat/behat": "2.4.*@stable",
    "behat/mink": "1.5.*@stable",
    "behat/mink-goutte-driver": "*",
    "behat/mink-extension": "*",
    "behat/mink-selenium2-driver": "*"
  }
}

■behat,minkのインストール

$ php composer.phar install

■behatの設定ファイルであるbehat.ymlを作成

composer.jsonと同じ場所にbehat.ymlを作成する。

$ vim behat.yml
default:
  paths:
    features: features
    bootstrap: %behat.paths.features%/bootstrap
  extensions:
    Behat\MinkExtension\Extension:
      goutte: ~

■behatを初期化(featuresフォルダが作成される)

$ ./vender/bin/behat --init

■test.featureシナリオを作成

※ファイル名は適当です。

$ vim features/test.feature
Feature: Drupal.org search
  In order to find modules on Drupal.org
  As a Drupal user
  I need to be able to use Drupal.org search

  Scenario: Searching for "behat"
    Given I go to "https://drupal.org"
    When I fill in "Search Drupal.org" with "behat"
    And I press "Search"
    Then I should see "Behat Drupal Extension"

■minkを利用するために「FeatureContext.php」を修正

useやextendsを変更

$ vim features/bootstrap/FeatureContext.php
<?php

use Behat\Behat\Context\ClosuredContextInterface,
    Behat\Behat\Context\TranslatedContextInterface,
    Behat\Behat\Context\BehatContext,
    Behat\Behat\Exception\PendingException;
use Behat\Gherkin\Node\PyStringNode,
    Behat\Gherkin\Node\TableNode;
use Behat\MinkExtension\Context\MinkContext;
//
// Require 3rd-party libraries here:
//
//   require_once 'PHPUnit/Autoload.php';
//   require_once 'PHPUnit/Framework/Assert/Functions.php';
//

/**
 * Features context.
 */
class FeatureContext extends MinkContext
{
    /**
     * Initializes context.
     * Every scenario gets it's own context object.
     *
     * @param array $parameters context parameters (set them up through behat.yml)
     */
    public function __construct(array $parameters)
    {
        // Initialize your context here
    }

//
// Place your definition and hook methods here:
//
//    /**
//     * @Given /^I have done something with "([^"]*)"$/
//     */
//    public function iHaveDoneSomethingWith($argument)
//    {
//        doSomethingWith($argument);
//    }
//
}

■behatを実行

$ ./vendor/bin/behat
Feature: Drupal.org search
  In order to find modules on Drupal.org
  As a Drupal user
  I need to be able to use Drupal.org search

  Scenario: Searching for "behat"                   # features/test.feature:6
    Given I go to "https://drupal.org"              # FeatureContext::visit()
    When I fill in "Search Drupal.org" with "behat" # FeatureContext::fillField()
    And I press "Search"                            # FeatureContext::pressButton()
    Then I should see "Behat Drupal Extension"      # FeatureContext::assertPageContainsText()

1 scenario (1 passed)
4 steps (4 passed)
0m2.492s

とりあえず動いた。
次回はSeleniumを追加してブラウザでの挙動を確認する。