以下をPowershell で実行すると、一気に消せる、はず。
Get-AppxPackage | Where-Object {$_.IsDevelopmentMode } | Remove-AppxPackage
以下で見つけました:
https://stackoverflow.com/questions/38519096/delete-nouientrypoints-designmode-packages
Visual Studioで作成中のアプリも巻き込まれて全部一度に消えるので、ご注意を。Releaseモードで配置したものも消えました。
以上。
Scrum/Agile的な開発をやってみたいが、どうにも具体的な手段が分からないSEによる、せめてツール周りの知識だけでも拡充しておきたい、という悪あがきの結果が増えていく(予定の)Blog。
2017年6月18日日曜日
2016年10月2日日曜日
TeamCity ビルド結果をダウンロードできるようにする
概要
TeamCityで実行したビルド結果を、TeamCityのWebページ上からダウンロードできるようにする設定方法。
手順
ダウンロードしたいビルド結果を作るビルド の Build Configuration を開く
このようなページ:
General Settings の Artifact Paths に、ダウンロードしたいビルド結果ファイルを追加する
(ここで指定するパスは、基本的にチェックアウトしたフォルダからの相対パス)
設定例1)生成されたファイルの内、dllファイルをArtifactにする。
+:SimpleClassLibrary/bin/*/*.dll
設定例2)生成されたファイルの内、pdbファイルを除いてArtifactにする。
+:SimpleClassLibrary/bin/*/*
-:SimpleClassLibrary/bin/*/*.pdb
※bin フォルダ直下のフォルダ名が「/*」となっているのは、”Debug”でも”Release”でも正しく保存されるようにするため
パスの手前に「+:」がついているパスから、「-:」がついているパスに該当するファイルが除外されて、最終的にArtifact として保存されるファイルが決まる。
使える特殊文字
* 任意のファイル名、フォルダ名を表す
** 任意のフォルダ階層。
「Save」ボタンをクリックして、設定を保存する
ビルド結果のダウンロード
上記までの手順だけで、ビルドすると、ビルド結果の「Artifact」タブで、指定したファイルがダウンロードできるようになっている。
ビルド結果例)
Artifact タブで、 dll ファイルなどがダウンロード出来るようになっている:
よく起こりがちな「どの状態で試験したのかわからない」「試験実行時の環境を再現できない」「いつ不具合が作りこまれたのか?」といった問題を回避・調査するのに、かなりの効果があるように思う。
以上。
2016年9月4日日曜日
SonarLint for Visual Studio で、実装中にコード解析結果を確認
概要
SonarQubeと同じルールで、VisualStudio上でソースファイルのルール違反部分をその場で表示できるようになる。
参考
- Visual Studio 上で、SonarQube サーバと連携方法
- SonarLint ルール一覧
導入手順
Plugin のダウンロードURL
Download ボタンをクリックして、ダウンロードしたファイルを実行で、インストール。
使用を開始するにあたって、Visual Studio 側では、特に設定は必要ない。
簡単な機能説明
Sonarlint をインストールした後に怪しげなコードを打ち込むと、エラー一覧に、SonarLintのルールに則った警告が出てくるようになる。
怪しげなコードのサンプル:
using System.IO;
namespace SimpleClassLibrary
{
public class SimpleExampleClass
{
private TextReader reader;
public SimpleExampleClass()
{
this.reader = new StreamReader("some path");
Initialize();
}
private void Initialize()
{
}
public string SomeRead()
{
string someStr = "someValue";
string retVal = reader.ReadLine();
return retVal;
}
}
}
namespace SimpleClassLibrary
{
public class SimpleExampleClass
{
private TextReader reader;
public SimpleExampleClass()
{
this.reader = new StreamReader("some path");
Initialize();
}
private void Initialize()
{
}
public string SomeRead()
{
string someStr = "someValue";
string retVal = reader.ReadLine();
return retVal;
}
}
}
出てきた警告:
※上のエラー一覧で、”S”から始まるコードを持つ警告が、Sonarlintが出力している警告。
青い字のコードをクリックすると、内容の説明と、一般的な修正方法を説明したSonarLintのページに飛ぶ。
ルールの有効化/無効化
プロジェクトのRefences > Analyzer を右クリックし、「Open Active Rule Set」をクリック
開かれたダイアログの「SonarAnalyzer.CSharp」の配下に、SonarLintでチェックしているルールがぞろっと出てくるので、左側のチェックボックスで、有効/無効を切り替える。
なお、設定を変更すると、RuleSetファイルが自動的に作成される。
SonarQube サーバとの接続
もし、SonarQube サーバを別に構築済であれば、SonarQubeサーバと接続して、解析するルールの内容を、SonarQubeサーバ側と同期することが出来る。
- トップメニューの Analize > SonarQube Connection をクリック
- チームエクスプローラにSonarQube が表示されるので、connect をクリック
- SonarQube ServerのURL、ユーザー名、パスワードを入力の上、「Connect」をクリック
※特にユーザ、パスワードを設定していない場合には、Server のURLだけで問題なし。
「SonarQube server:」には、SonarQube の画面を開く際に普通にアクセスしているURLを入力すればよい
- SonarQube のプロジェクト一覧が表示される
- 現在のソリューションに対応するプロジェクトを右クリックし、「Bind」をクリック
これで、ソリューションに必要なファイルが追加される。
定義の更新:
サーバのルールなどを取り込みなおしたい合には、TeamExploerを開き、プロジェクトを右クリック して、 Update を選択すると、サーバから設定を取り込みなおせる:
SonarLintを利用すれば、実装中に、ソースコードの品質を開発者がより確認しやすくなる。
SonarQube 上への品質情報の保存と共に利用すれば、チーム全体の品質に対する意識が大きく向上できる気がする。
個人で作業する場合でも、うっかりしたミスを減らせるので、ありがたい存在である。
蛇足メモ:サーバ接続時のトラブル
SonarQube サーバへの接続時、自環境では、うまく動かないことがあった。
SonarAnalizer.CSharp のバージョンが古い? か、上手くインストールできていなかった?ようなので、Package Manager コンソールで、以下コマンドを実行して、SonarAnalyzerを入れなおしたら、上手く動くようになった。
コマンド:
Install-Package SonarAnalyzer.CSharp
以上。
2016年8月21日日曜日
TeamCity上からSonarQube にテスト結果を含める手順 for OpenCover
概要
TeamCityのBuild Stepから、VSTestと、OpenCoverで、SonarQubeにテスト実施状況とカバレッジを表示させる手順。
前提
- TeamCity上から、SonarQube の解析の実行までできる状態であること(こちらの投稿で、最低限の手順を記載済)
- OpenCoverをダウンロード済であること(zipを任意の場所に解凍でOK)
- 対象のBuild Configuration にて、Version Control Settingsの「Clean build」が有効になっていること(毎回溜まっていくテスト結果の処置に困るため)
手順
- 対象のBuild Step の編集画面を開く
- テスト実行を行うBuild Step を追加する。
テスト実行のBuild Step は、ビルドより後、SonarQube の解析終了コマンドより手前に配置する。
テスト実行のBuild Step は以下のような雰囲気:
- SonarQube の解析開始側のBuild Step に、以下コマンドライン引数を追加する
/d:sonar.cs.vstest.reportsPaths="TestResults\*.trx"
この時点で、SonarQube のDashBoard に、テスト結果が表示されるようになる。
- OpenCover のBuildStepを追加する。
実行コマンド:
<OpenCover解凍フォルダ>\OpenCover.Console.exe
コマンド引数:
-output:opencover.xml
-register:Path32
“-target:%teamcity.dotnet.vstest.14.0%" -targetargs:SimpleClassLibraryTest\bin\Release\SimpleClassLibraryTest.dll
※OpenCoverのBuildStep は、ビルドより後、SonarQube の解析終了コマンドより手前に配置する。
※-targetargs の中身は、テスト対象のDLL。対象の内容に応じて、書き換え
- SonarQube の解析開始側のBuild Step に、以下コマンドライン引数を追加する
/d:sonar.cs.opencover.reportsPaths="opencover.xml"
- ※”overcover.xml”は、OpenCoverの実行コマンドの”-output”に指定したファイル名
- 最終的なBuild Steps:
実行結果
SonarQube 側のプロジェクト毎のホーム画面、ダッシュボードで、カバレッジとテスト結果の確認が行えるようになる。
プロジェクトホーム画面より抜粋:
ダッシュボード画面より抜粋:
補足:
※TeamCity側で何もエラーが発生していないのに、コードカバレッジが上手く表示されていない場合には、該当のビルドのBuild Logを、TeamCity上で確認してください。Coverageを実行しているBuild Stepで、何らか起きているはず。
※上手くいかない場合は、コマンドライン引数の”-register:Path”部分を、”-register:User”か”-register:Path64”かに変更で、上手く行く…かもしれない
カバレッジが通っていないコードなども確認可能:
赤いバーが表示される:
参考ページ:
以上。
2016年8月19日金曜日
TeamCity のBuild で SonarQube のソース解析を実行する(MSBuild)
概要
SonarQubeの「SonarQube Scanner for MSBuild」を、TeamCityから起動できるようにするまでの手順。
とりあえずやってみたらとりあえず出来た! というレベル。もっと良い手段もある、と、思う。。
前提
- TeamCity の BuildAgent に「SonarQube Scanner for MSBuild」がインストール済であること。
- SonarQube サーバが起動済であること
手順
- Build Agent に実行ファイルの場所を追加する(省略可能*1)
以下ファイルをメモ帳なり、任意のエディタで開く
<Build Agentのインストールフォルダ>\conf\buildAgent.properties
※<Build Agentのインストールフォルダ>は、TeamCity上で、Agentの「Agent Parameters」タブの”agent.home.dir”に記載されている
- 開いたファイルに、以下内容を追加
system.msBuildSonarQubeRunnerPath=<SonarQube Scanner for MSBuild を配置した場所>
※”<>”の間の部分は、適宜読み替えてください。。c:\\sonarqube\\bin とか。”/”をエスケープするのをお忘れなく
- Build Step に 普通にビルドを実行するBuild Step を追加する
以下のような。
- ビルドを実行するBuild Stepの手前に、以下のBuild Stepを追加する
実行コマンドの内容:
%system.msBuildSonarQubeRunnerPath%\MSBuild.SonarQube.Runner.exe
パラメータの内容(*2):
begin /k:"%system.teamcity.projectName%" /n:"%teamcity.project.id%" /v:"%build.number%"
- 後続に、以下のBuild Stepを追加する
実行コマンドの内容:
%system.msBuildSonarQubeRunnerPath%\MSBuild.SonarQube.Runner.exe
パラメータの内容:
end
- 全体的には、以下のような Build Configuration になる:
補足
*1 Build Step内でパラメータを使って実行ファイルのパスを指定しているので、Build Agent にパラメータを追加している。不必要だと思うのであれば、省略して、Build Stepに直接ファイルパスを記載してください
*2 Scanner for MSBuild の引数として引き渡しているTeamCityのパラメータの意味合いは以下の通り
- system.teamcity.projectName : 現在ビルドを実行中のプロジェクトの名前。
- teamcity.project.id : プロジェクト作成時に指定したID
- build.number : ビルド毎に更新される番号。何も設定していない場合は「ビルドを実行した回数」が設定されるはず(Build Configuration の General Settings にて設定可能)
実行結果の確認
実行すると、SonarQube 側のページで、以下のような雰囲気で確認が可能。
(2行目が、追加された解析結果)
SonarQube は、実行結果を勝手に蓄積していくので、後々の品質評価等にも、役立つ情報が得られる。デプロイのような作業が必要ないようなプロジェクトでも、チェックインする度にソース解析が実行される状態にしておくことは、非常に有益であると思う。
以上。
登録:
投稿 (Atom)