問題タブ [build-server]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - ヘッドレス テストの実行をサポートする .NET Web 自動化フレームワークはありますか?
htmlunitに似ていますが、C# で使用します。IKVMを介して .NET で htmlunit を使用できることを見てきましたが、可能であればネイティブ ソリューションが必要です。
目的は、CI サーバーで実行されている既存の (xUnit.net) テストに UI テストを追加することです。メモリ内で UI テストを実行できるようにしたい (制御できないマシンでブラウザー インスタンスを開きたくないため)、他のマシンに依存することなく ( Selenium RCを使用した場合に必要になる) 、 例えば)。
これを達成する方法を知っている人はいますか?
更新: Selenium 2は、サポートされているブラウザーの 1 つとして HtmlUnit を提供するようになりました。IKVM を介さずに HtmlUnit を使用したい人は、代わりに Selenium 2 を検討する必要があります。これを反映するために、以下の回答を更新しました。
tfs - ブランチのTFSビルドサーバービルド?
2 つのブランチ ("Main" と "NewFeature") を持つ TFS 2008 プロジェクトがあります。それぞれは、ソース コードの完全で独立した「コピー」(バリアント) です。
ワークスペース マッピングを変更することで、いずれかのバリアントをローカル PC にマッピングでき、両方のブランチで問題なく作業できます。
ただし、ビルド サーバーを NewFeature ブランチに切り替えるようにマッピングを設定すると (ビルド サーバーに関する限り、他に何も変更せずに NewFeature ソース コードを単純に交換する必要があります)、次のエラーが発生します。
つまり、NewFeature ブランチからビルドしている場合、ソース コードのどこにもこのブランチへの参照がなくても、何かがまだMainブランチで検索されています。Main への参照をキャッシュしているように見えますか?!
完全にクリーンなビルドを実行しました (ビルド フォルダーをサーバーから削除し、/p:ForceGet=true を使用してビルドを実行して、マッピングがサーバーにフラッシュされていることを確認し、サーバー上にファイルをキャッシュする可能性のあるファイルがないことを確認します)。ワークスペース バインディング) ですが、これは役に立ちません。
助言がありますか?
stored-procedures - サーバーとストアド プロシージャを構築するためのアプローチ
私は、オフィスのビルド サーバーのセットアップを担当しています。現在、すべてのクエリを SQL 2000 サーバーのストアド プロシージャに入れています。これは手動で行われ、SQL ファイルが生成されたり、SVN に入れられたりすることはありません。
私が求めているのは、DB からすべてのストアド プロシージャを取得できるビルド サーバーを使用する良い方法です。
私はこれが不可能かもしれないと推測しています/練習し、ベストプラクティスではないと確信しています. 解決策の 1 つは、SQL スクリプト ファイルの作成を開始し、それらを SVN に配置して、それらを取得して処理できるようにすることだと思います。
continuous-integration - .net および svn との継続的な統合
現在、私たちのプロジェクトでは継続的インテグレーションの自動化されたビルドとテストを適用していません。私たちは 2 人の開発者しか取り組んでいないので、ここまで気にすることはありませんでしたが、2 人のチームであっても、継続的インテグレーションを使用して、ビルドが壊れたり、テストが開始したりしないことを確認することは価値があると思います。失敗。
C# と WPF で .Net を使用しています。MSbuild を使用してアプリケーションをビルドし、すべてのテストを実行するための Python スクリプトを作成しました。ソースは SVN にあります。
このセットアップで継続的インテグレーションを適用するための最良のアプローチは何ですか? どのツールを入手する必要がありますか? 多くの設定を必要としないものであるべきです。簡単な手順で開始でき、メンテナンスもほとんど必要ありません。
svn - SVN: ブランチと外部をリリースしますか?
コードの共有部分 (さまざまな機能/スタイル/javascript など) を使用する、同じクライアント用の 2 つの Web サイト (メインの www サイトと、別のサーバー上にある e コマース サイト用の別のサイト) があります。現在、共有コードを SVN の別のプロジェクト (同じリポジトリ内) として保持し、svn:externals を使用してこれらのそれぞれのブランチを 2 つの Web サイト プロジェクトにプルすることで、これを管理しています。
2 つのサイトにそれぞれ 1 つずつ、2 つのリリース ブランチを作成しました。作業中はすべてが通常どおり各サイトのトランクにコミットされ、「ライブの準備ができた」ときに、そのサイトのリリース ブランチにマージされます。今日、共有コードの一部を変更し、リリース ブランチで更新を行ったときに、リリース ブランチがすぐにそれを取り込んでいることに気付きました。これは私たちが望んでいたものではありません:(
この問題を解決する方法を教えてください。コードの共有をドライアップするためにエクスターナルを使用しましたが、別の方法はありますか? この質問 ( SVN で分岐して、svn:external フォルダーも分岐させるにはどうすればよいですか? ) では、外部が悪いと言及されており、別のビルド プロセスを使用する必要がありますが、それがどうあるべきかについては言及されていません。
ビルドを実行する CruiseControl.net があり、この問題を解決したいと考えています。より良いプロセスに関するアイデアはありますか?
乾杯
ピート
更新: それ以来、ソース管理に Mercurial (Fogcreek's Kiln) を使用するようになりました。Mercurial にもサブリポジトリのアイデアがあるため、プロジェクトでもそのルートに従いました。ただし、コストがかかります。分岐は、タグ付けと単純にすべてを最新の状態に保つのと同様に非常に困難になります。私たちの最新の方法は、すべての共有リポジトリも含めて、両方のプロジェクトを 1 つのリポジトリにまとめることです。これにより、クローン時間を遅くする 1 つの「メガ プロジェクト」が得られます (SVN で確認してください)。現在、分岐ではなく機能の切り替え/トグルを使用しているため、開発が大幅に簡素化されています。
nunit - NUnit と MSTest - 気まぐれな TDD 初心者の両方の経験
ここでは、NUnit と MSTest に関する SO に関する質問がたくさんあり、私はそれらのかなりの数を読みました。ここでの私の質問は、個別に投稿するのに十分なほどわずかに異なると思います。
私が C# を使い始めたとき、以前 C++ を使っていたときには MSTest を利用できないことに慣れていたので、MSTest を見ることなど考えたこともありませんでした。基本的に全部忘れました。:) それで、私は NUnit から始めて、とても気に入りました。テストのセットアップは非常に簡単で、テストはそれほど面倒ではありませんでした。IDE を起動してテストを実行するだけです。
ここで多くの人が指摘しているように、NUnit は頻繁に更新されますが、MSTest は IDE と同じ頻度でしか更新されません。TDD の最前線にいる必要がないのであれば、これは必ずしも問題ではありませんが (私はそうではありません)、頻繁な更新で私が抱えていた問題は、すべてのシステムを最新の状態に保つことです。私は毎日 4 ~ 5 台の異なる PC を使用しており、すべての PC を更新するのは大したことではありませんが、古いバージョンの NUnit を使用するシステムでコードを適切にコンパイルする方法を望んでいました。私のプロジェクトは NUnit インストール フォルダーを参照していたため、フレームワークをアップグレードすると、古いフレームワークがインストールされているコンピューターはプロジェクトをコンパイルできなくなりました。NUnit DLL だけを含む共通フォルダーを SVN に作成して、この問題に対処しようとしました。 この問題を回避する方法はありますか? これが私が最初に使用をやめた理由です。
そんなある日、MSTest のことを思い出し、試してみることにしました。IDE に統合されていることが気に入りました。CTRL-R、CTRL-A、すべてのテストが実行されます。なんとシンプル!しかし、MSTest で利用できるテストの種類はかなり限られていることがわかりました。実際にどれだけ必要かはわかりませんでしたが、NUnit に戻る必要があると判断し、そうしました。
この頃、単体テストのデバッグが必要になり始めていました。NUnit でそれを行う方法を理解する唯一の方法は、NUnit をスタートアップ アプリケーションとして設定し、テストにブレークポイントを設定することでした。次に、NUnit GUI でテストを実行してブレークポイントに到達します。これは完全な PITA でした。次に、MSTest の GUI をもう一度見てみると、[デバッグ] をクリックするだけでテストが実行されることがわかりました。おお!これが、私が MSTest を支持するようになったキラー機能でした。
今、私は MSTest を使用して戻ってきました。残念ながら、今日、私は毎日のビルドについて考え始め、Tinderbox で検索しました。これは、この種のことを以前に聞いた唯一のツールです。これにより、buildbot や TFS などの他のツールに目を向けることができました。ここでの問題は、自動化された毎日のビルド、継続的インテグレーション、または流行語が何であれ、MSTest が私を TFS に固定することが保証されていると思うことです。私の会社は、MS のみのソリューション (VS 以外) に縛られる余裕がないため、他の選択肢を検討したいと考えています。
NUnit に戻っても問題ありません。100 以上の単体テストを書き直すことにわくわくしているわけではありませんが、その通りです。ただし、要約すると、私のこれら2つの問題を押しつぶす方法を誰かが説明してくれることを本当に望んでいます。
- プロジェクトをビルドするためにすべてのシステムで NUnit をアップグレードし続ける必要がないように、NUnit とプロジェクトをセットアップするにはどうすればよいですか?
- 単体テストのデバッグを簡単にするにはどうすればよいですか? アプリケーションをテスト/実行するには、NUnit とデフォルトのアプリを切り替え続ける必要があるため、私のアプローチは苦痛でした。NUnitIt on codeplexについて言及した SO の記事を見ましたが、経験がありません。
更新- 私は自分の開発 VM のものを比較していますが、これまでのところ、NUnitit は非常に優れています。インストールは簡単 (ワンクリック) で、SVN externals フォルダーにある NUnit バイナリーを指定するだけです。悪くない!また、VS -> Tools -> Options -> Keyboard に移動し、CTRL-R、CTRL-A のマッピングを NUnitit.Connect.DebugGUI にマッピングするように変更しました。NUnitを開いたときに自動的にテストを実行する方法がわからないため、完璧ではありませんが、かなり良いです。そして、デバッグは今あるべきように機能します!
更新 #2 -- TestDriven.Net をインストールして、簡単に試してみました。全体として、私は NUnitit よりもはるかに気に入っていますが、現時点では NUnitit が無料であるという理由で勝っています。また、NUnit でも動作するため、必要に応じて TestDriven.Net に「アップグレード」することができます。TestDriven.Net で私が最も気に入っているのは、失敗したテストをダブルクリックすると、失敗したテストの行に直接移動できることですが、NUnit + NUnitit ではこれができないようです。NUnit GUI と VS IDE の間でこのリンクを実現できた人はいますか?
c# - MS Build Server 2010-バッファオーバーフロー//追加:ソースセーフからディレクトリを除外する方法
MS Build Server(MS Visual Studio 2010 ver 10.0.30319.1)でServerTasks-> Builds-> Server Task Builder-> Queue new Built and goについてソリューションをビルドしようとすると、47秒後にエラー出力が表示されます。
CSC:デバッグ情報ファイルの作成中に予期しないエラーが発生しました'c:\ Builds \ 1 \ ServerTasks \ Server-Tasks Builder \ Sources \ ThirdParty \ Sources \ samus-mongodb-csharp-2b8934f \ MongoDB.Linq \ obj \ Debug \ MongoDB.Linq.PDB '-' c:\ Builds \ 1 \ ServerTasks \ Server-Tasks Builder \ Sources \ ThirdParty \ Sources \ samus-mongodb-csharp-2b8934f \ MongoDB.Linq \ obj \ Debug \ MongoDB.Linq.pdb:アクセスが拒否されました
ディレクトリのアクセス許可を確認し、すべてのユーザーにアクセスを許可するように設定しましたが(デバッグ目的のみ)、まだ問題があります。Procmonを実行し、ディレクトリのファイルアクセスをフィルタリングします。
'c:\ Builds \ 1 \ ServerTasks \ Server-Tasks Builder \ Sources \ ThirdParty \ Sources \ samus-mongodb-csharp-2b8934f \ MongoDB.Linq \ obj \ Debug \'
教えてくれます:
16:41:00,5449813 TFSBuildServiceHost.exe 3528 QuerySecurityFile C:\ Builds \ 1 \ ServerTasks \ Server-Tasks Builder \ Sources \ ThirdParty \ Sources \ samus-mongodb-csharp-2b8934f \ MongoDB.Linq \ obj \ Debug BUFFER OVERFLOW Information :DACL、0x20000000
と
16:41:00,5462119 TFSBuildServiceHost.exe 3528 QueryOpen C:\ Builds \ 1 \ ServerTasks \ Server-Tasks Builder \ Sources \ ThirdParty \ Sources \ samus-mongodb-csharp-2b8934f \ MongoDB.Linq \ obj \ Debug FAST IODISALLOWED
何か案は?
msbuild - 既存の 2008 ビルド サーバーを新しい TFS 2010 サーバーに追加できますか?
私のシナリオは次のとおりです。現在、新しい Team Foundation Server 2010 のインストールをテストしています。すぐに移動します。
TFS 2010 および新しい MSBuild で動作するようにビルドをアップグレードするのは大変な作業のようです (少なくとも、すぐに使用できるわけではありません)。そこで、私がやりたいことは、古い TFS サーバーを TFS 2010 のビルド サーバーとして転用することです。ビルド サービスは既にインストールされています。
既存の TFS 2008 ビルド サーバーを新しい TFS 2010 インストールに追加する方法がわからないので、古いサーバーを使用して古いビルドを実行できます。これは可能ですか?どうすればできますか?
tfs - Cannot start TFS Build service: Error 1227
When I try to start the TFS 2008 Build service on the port 9191 I get the following error message:
Windows could not start the Visual Studio Team Foundation Build service on Local Computer.
Error 1227: The network transport endpoint already has an address associated with it.
If I use another port it works, but I need it to be the default, 9191.
I will appreciate any help!
Update:
I have tried by removing every binding to the port 9191 that the following command shows:
To remove the bindings I used the following command:
Once I removed the bindings, the service was able to start, but the BS web service were not available from the outside, this is because of the removed bindings. I ran the following command to reserve the endpoint again:
But then, the service is unable to start again. The same error message is displayed as before.
The log trace of TFSBuildService contains the following message: