パークのソフトウエア開発者ブログ|ICT技術(Java・Android・iPhone・C・Ruby)なら株式会社パークにお任せください -17ページ目

パークのソフトウエア開発者ブログ|ICT技術(Java・Android・iPhone・C・Ruby)なら株式会社パークにお任せください

開発の解決方法や新しい手法の情報を、パークのエンジニアが提供します。パークのエンジニアが必要な場合は、ぜひお気軽にお問い合わせ下さい。 株式会社パーク:http://www.pa-rk.co.jp/

手持ちにMac(とVM上のLinux)しかない人がC#プログラム(練習問題レベル)をビルド検証する必要に迫られた際の覚え書きです。

Monoとは
.NET Framework互換環境をLinuxやMacOSなどに実現するオープンソースプロジェクト。
iOS/Androidでクロス開発を実現するXamarinやゲームエンジンのUnityでも利用されています。

インストール
下記URLからダウンロードしてインストールします。
MacOS,Linux,Windows版があります。
http://www.mono-project.com/download/


プログラムのビルド方法
こんなコードがあったとして、、

class TestClass
{
static void Main(string[] args)
{
System.Console.WriteLine(args.Length);
}
}


コマンドラインからmcsコマンドでビルドします。

$ mcs TestClass.cs

TestClass.exeが出力されます。

実行方法
monoコマンドの引数にビルドして出来たアセンブリを指定して実行します。

$ mono TestClass.exe 1 2 3
3


互換性など
基本となるクラスライブラリは互換性があるようです。
UIはWPFは駄目だけどWinformsならある程度サポートされておりそれなりに動きそう(?)
尤もUI部分はクラスを分離してプラットフォームに適合したツールキットを利用するのがポリシーの模様。Win32APIの呼び出しは当然×
bitnamiとは
Webアプリケーションや開発環境などをオールインワンでインストール出来るパッケージを配布しているサービスです。
例えばWordpressやRedmineを言語環境のバージョンやDBなどを意識せずワンクリック(やや誇張)でインストール出来ます。

bitnami_logo

インストール先
Windows, MacOS, Linux, VMイメージ, Dockerコンテナ, クラウドと多岐に渡ります。
ちょっと試したいときにローカルのPCにスタンドアロンでインストール出来るのは便利です。

配布アプリケーション
下記リンクを見れば一目瞭然ですが、Wiki、CMS、eコマース、開発環境、アプリケーションサーバなど・・・
「comming soon」もたくさんあり、有償ソフトのトライアルもあります。
何より色々なアプリや環境がリスト化されていて勉強にもなります。
https://bitnami.com/stacks


利用するメリット
・java,PHP,Python,Ruby,Nodeなど実行言語やversionを気にせずにインストールして試すことが出来る
・言語と同様にDatabaseサーバやWebサーバなどのversionを気にせず試せる
・アンインストールが楽ちん
・インストールのコストが僅かなのでデファクトでない様々なアプリや環境を試せる

オールインワンインストーラは以前からありましたが、配布元や手順が統一化されていると安心感というかブランド力を感じてしまいます。

はじめに

こんにちは。バグ太郎です。

表題の通りですが、最近身の回りではJenkinsなどを用いて
テストを継続的に行うような環境を作る動きが活発になっているような気がします。

たとえばJavaの場合、Jenkinsでスケジューリングしプロジェクトのビルドをトリガに
findbugsを用いて静的テストを行い、junitやjmokitを用いて単体テストを行い、
coverturaを持ちいてカバレッジの集計なんかができます。

そこまでやるならぜひ結合テストをやりたいと思った所存です。といってもUIテストですが。
そこで白羽の矢が立ったのがSikuliです。

Sikuliとは,

Sikuli scriptといって、画像認識でGUI操作を自動化する所謂マクロツールです。
専用のIDEが存在し、操作の対象を探索するための画像を表示しながら
コーディングすることができるという特徴があります。
他にも色々特徴はあるのですが、今回のミソはJVM上で動作することです。
専用のIDE上ではJRubyやJythonで記載するようですが、
ようはこいつの本体はjarで、中身はjavaです。

なぜSikuli?

JenkinsでCIを実現するにあたって、
一番楽な連携は結果をxmlで出力することだと(勝手に)思っています。
junitなどもビルドから実行が始まり、Jenkins上から集計なんて言ってますが
ただ結果のxmlを参照してるだけです。
ようは、junitと同じように結果を出力してしまえばいいわけです。
SikuliのAPIはjarで提供されていますから、当然JunitTestの実装でもインポートして使えます。
つまり、

JunitでSikuliを用いてUIテストを行い、結果をJenkinsに渡す


という構想なわけです。

JunitとJenkinsの関係性そのままです。特にPluginなどは使いません。
なので実現は非常に簡単な部類かと思います。すごい。


問題点は画像認証のマクロツールという立場上、
テストの手順は必ず再現できるものでなければいけないことでしょうか...
表示や遷移が頻繁に変わることのない画面系のテストか、リグレッションテストが主な用途になるかと思います。


シリーズ化したら、次回は実際に作成してみたいと思います。では。

PowerShellでNTDSとサーバーコンテナーの追加




#サイト追加


New-ADObject -Name "second" -Type Site -Path "CN=Sites,CN=Configuration,DC=first,DC=local"


#NTDS追加


New-ADObject -Name "NTDS Site Settings" -Type NTDSSiteSettings -Path "CN=second,CN=Sites,CN=Configuration,DC=first,DC=local"


#コンテナー追加


New-ADObject -Name "Servers" -Type serversContainer -Path "CN=second,CN=Sites,CN=Configuration,DC=first,DC=local"








実行結果







servermanagercmdコマンドで、コンポーネントを確認することができます。




コンポーネントの確認は、「-query」オプションを付けて実行する。

追加可能な機能や役割の一覧と、インストールされているかどうか表示される。

先頭が[ ]となっている行は未インストール、「[X]」となっている行(緑色の文字)がインストール済み。




インストール済みが視覚的にわかりやすいので、サーバー構築作業時の確認や、エビデンス取得に使えるのでは、ないでしょうか。




servermanagercmd -query を実行!




役割








機能





servermanagercmd -query > エビデンス.txt


で、テキスト出力されます。↓こんな感じ













-installオプションでコンポーネントをインストールすることも可能です。コンポーネント名は、各行の最後の[コンポーネント名]を利用します。