5

Redis の利用可能なインスタンスを必要とする AppVeyor で xUnit テストをいくつか実行したいと考えています。AppVeyor の「サービス」内に Redis が見つからなかったので、appveyor.yml からわかるように、カスタム ソリューションになります。

version: 1.0.{build}
before_build:
- nuget restore .\Hangfire.Redis.StackExchange.sln
- START .\packages\Redis-32.2.6.12.1\tools\redis-server.exe ".\packages\Redis-32.2.6.12.1\tools\redis.conf"
- '@ECHO Redis Started'
build:
  publish_nuget: true
  publish_nuget_symbols: true
  verbosity: minimal

残念ながら、ビルドプロセスはSTART .\packages\Redis-32.2.6.12.1\tools\redis-server.exe ".\packages\Redis-32.2.6.12.1\tools\redis.conf"

アイデアや可能な回避策はありますか?

4

4 に答える 4

4

Redis を Windows サービスとして実行してみてください。

before_build:
- nuget restore .\Hangfire.Redis.StackExchange.sln
- packages\Redis-32.2.6.12.1\tools\redis-server.exe --service-install
- packages\Redis-32.2.6.12.1\tools\redis-server.exe --service-start
- '@ECHO Redis Started'
于 2015-02-24T02:48:40.030 に答える
3

興味のある方は、このトリックを行った appveyor.yml をご覧ください。基本的には、リリースを github から直接ダウンロードし、フォルダーに解凍し、Redis をサービスとしてインストールして起動します。

version: 1.0.{build}
before_build:
- ps: >-
    Invoke-WebRequest "https://github.com/MSOpenTech/redis/releases/download/win-2.8.17.4/redis-2.8.17.zip" -OutFile .\redis-2.8.17.zip;

    $destFolder = "redis-2.8.17";

    $shell = new-object -com shell.application;


    $zip = $shell.NameSpace("$pwd\redis-2.8.17.zip");

    if (Test-Path $pwd\$destFolder )

    {
        del $pwd\$destFolder -Force -Recurse
    }

    md ".\redis-2.8.17";

    foreach($item in $zip.items())

    {
        $shell.Namespace("$pwd\redis-2.8.17").copyhere($item);
    it kind of worked

    cd $destFolder

    .\redis-server.exe --service-install

    .\redis-server.exe --service-start

    cd ..
- nuget restore Hangfire.Redis.StackExchange.sln
build:
  publish_nuget: true
  publish_nuget_symbols: true
  verbosity: minimal
于 2015-02-24T08:55:53.540 に答える