2016-12-21 12 views
0

現在、成長しつつあるワニス構成ファイルにいくつかのユニテストを追加しようとしています。Varnish VTCインクリメントバックエンド{} -

私はそれを初期化することができました。私はvarnishtestvtcという形式の基礎を持っていると思います。

私はvarnish.vclをロードする必要があります。そこにはいくつかのバックエンドがあります。いくつかの内部ホストに対して.hostを持っていて、それらはCIマシンから解決できません。

バックエンドを無効にするにはどうすればよいですか?

私の考えは基本的のようである:(api01は、内部DNSとvarnish.vclで定義されています。)

varnish v1 -vcl { 
    # …some vcl to define backends… # 
    include "${pwd}/varnish.vcl"; 
    backend api01 { .host = "127.0.0.1"; } 
} 
varnish v1 -start 

それが失敗した - Backend host '"api_loadbalancer"' could not be resolved to an IP address

は、それが(上記のバックエンドを定義し続けないこと127.0.0.1) - インクルードの前にバックエンドを実行すると、再定義エラーが発生します。

バックエンドを模擬する正しい方法は何ですか?

答えて

0

私たちはVCLコードを複数のファイルに分割し、それらをすべて "main.vcl"に "含める"ことでVarnishを開始します。ここでは単純化された構成例である:

main.vcl 
-- backends.vcl 
-- directors.vcl 
-- mainLogic.vcl 

これは、あなたは、あなたのテストケースにVCL-ファイルの一部を含めることができ、あなたはバックエンドを指定することができます。

varnish v1 -vcl { 
    backend api01 { .host = "127.0.0.1"; } 
    include "${pwd}/mainLogic.vcl"; 
} 

かあなたは(私たちは何をすべきか)バックエンドをモックとしたい場合は:あなたは本当のバックエンドを使用する場合、例えば、

varnish v1 -vcl { 
    backend api01 { 
    .host = "${s1_addr}"; 
    .port = "${s1_port}"; 
    } 
    include "${pwd}/mainLogic.vcl"; 
} 
+0

は、ほとんどの答えのためのTHXを同じ考えを持っていました。 –

+0

私たちのワニステストを "メタプログラム"するというさらなるアイデアを提供するだけです。つまり、私たちがJSONでRubyコードと設定を持っており、RubyコードでバックエンドやディレクターのVCLコードを設定などから生成することができるということです。 – Ronald

+0

これはすばらしいですね! - あなたが私と共有できるものは何ですか? –

関連する問題