0

現在、TeamCity と、Ruby テストを実行する方法を調べています。コマンド ラインまたは Rake ビルダーを使用すると、問題なくテストを実行できます。私が今解決しようとしている問題は 2 つあります。

以前の仕事の 1 つで、TeamCity に依存して .NET テストを実行していました。これには Nant を使用し、テスト中に実行されたクエリの量と、これらのクエリの平均実行時間を追跡する手段がありました。

私は今、Ruby プロジェクトで同じことをしようとしています。したがって、私が取り組みたい最初の論理的なステップは、たとえばRSpecCucumberテストを Ant を使用して実行するにはどうすればよいかということです。 Ant 自体を見て少し把握してみたのですが、見つかった例はすべて jRuby のものであり、使用していません。RVM と通常の Ruby インストールに依存しています。

質問の 2 番目の部分は、実行されたクエリの量とその実行時間をどのように追跡できますか? おそらく、追跡するための宝石またはある種のグローバル変数があると思います。この情報を何らかの方法で TeamCity に出力したいと考えています。

編集

わかりましたので、TeamCity サーバーの Ant を使用して実行することができました。これは私がatmを使用しているXMLです:

   <?xml version="1.0"?>
   <project name="rubycas" default="init">
       <description>
           This buildfile is used to build the RubyCAS project under TeamCity and run the required tasks to validated
           whether the project is stable and fully functional.
       </description>
       <property name="test_type" value="cucumber" />

       <target name="init">
          <echo message="##teamcity[testStarted name='Rubycas']" />

          <condition property="cucumberBool">
               <equals arg1="${test_type}" arg2="cucumber" />
          </condition>

          <condition property="rspecBool">
               <equals arg1="${test_type}" arg2="rspec" />
           </condition>
       </target>

       <target name="rspec" if="rspecBool" depends="init">
           <exec executable="rspec" outputproperty="result">
               <arg value="--require teamcity/spec/runner/formatter/teamcity/formatter" />             <arg value="--format Spec::Runner::Formatter::TeamcityFormatter" />
           </exec>
           <echo message="${result}" />
       </target>

       <target name="cucumber" if="cucumberBool" depends="init">
           <exec executable="cucumber" outputproperty="result">
               <arg value="--format junit" />
               <arg value="--out results" />
               <arg value="features" />
           </exec>
           <echo message="${result}" />
       </target>
   </project>

問題は、テストを認識するために RSpec から TeamCity に出力を取得できないことです。

4

1 に答える 1

1

ant の exec タスクを使用して、任意のシステム コールを実行できます。この場合は、rspec である可能性があります。

https://ant.apache.org/manual/Tasks/exec.html

の線に沿った何か

<target name="rspec"> <exec executable="rake"> <arg value="spec"/> </exec> </target>

ただし、実際にはantの外部でコマンドを実行しているため、追跡がこれで機能するかどうかはわかりません。

于 2012-09-06T00:37:13.737 に答える