2017-09-11 11 views
2

仕様テストにV93Kを使用する方法を理解するのに苦労しています。 J750の場合、簡単でした。私はちょうどこれを行いました:仕様テストのスイッチングテスタ

before(:context) do 
    Origen.environment.temporary = 'j750.rb' 
    Origen.load_target('default') 

    c = Class.new do 
     include OrigenTesters::ProgramGenerators 
     include TIPShared::Interfaces::AnalogTestBase 

     def func(name, options={}) 
     @current_test_config = test_instances.functional(name, options) 
     @current_test_config 
     end 

     def t 
     @current_test_config 
     end 
    end 
    @test_interface = c.new 
    end 

それから、私は@ test_interface.funcを呼び出して何でもすることができます。

93Kと似たようなことを試してみると、私はいろいろな問題を抱えています。最新のものはまだIGXLのものを探しているように意味がありません。これまでのところ私が持っているものです。

before(:context) do 
    Origen.environment.temporary = 'v93k.rb' 
    Origen.load_target('default') 
    Origen.app.load_target! 

    @c = Class.new do 
     include OrigenTesters::ProgramGenerators 
     include OrigenTesters::SmartestBasedTester 
     #include OrigenTesters::SmartestBasedTester::V93K 
     #include OrigenTesters::SmartestBasedTester::Base 
     include TIPShared::Interfaces::AnalogTestBase 

     def func(name, options={}) 
     @current_test_config = test_suites.add(name, options) 
     @current_test_config.test_method = test_methods.origen.functional_test 
     @current_test_config 
     end 

     def t 
     @current_test_config 
     end 
    end 
    @test_interface = @c.new 

    Origen.file_handler.current_file = Pathname.new("#{Origen.app.root}/temp.rb") 
    end 

しかししようとする@ test_interface.funcがちょうど与える:

私はOrigenTestersは:: ProgramGeneratorsではなく、V93Kを選ぶだろうと思ったので、私には非常に混乱して

。私はこれがテスターの問題/欠点であるか、これがスペックであるかどうかは分かりません。私は仕様が基本的に次のコンテキストでアプリケーションを再起動すると思っていたので、IGXLのものはロードしないでください。

Failure/Error: @current_test_config = test_suites.add(name, options) 

NameError: 
    uninitialized constant OrigenTesters::IGXLBasedTester::J750::TestSuite 
    Did you mean? OrigenTesters::IGXLBasedTester::J750::TestInstance 
# /proj/.tec_k3s/users/cengelken_b50956/tr_origen/gems/ruby/2.3.0/gems/origen_testers-0.10.0/lib/origen_testers/smartest_based_tester/base/test_suites.rb:21:in `add' 
# ./spec/analog_test_base_spec.rb:262:in `func' 
# ./spec/analog_test_base_spec.rb:281:in `block (5 levels) in <top (required)>' 
# ./config/commands.rb:27:in `<top (required)>' 
# /proj/.tec_k3s/users/cengelken_b50956/tr_origen/gems/ruby/2.3.0/gems/origen-0.24.0/lib/origen/commands.rb:183:in `require' 
# /proj/.tec_k3s/users/cengelken_b50956/tr_origen/gems/ruby/2.3.0/gems/origen-0.24.0/lib/origen/commands.rb:183:in `<top (required)>' 

助けてください。

おかげで、

コーリークラスは、ここで定義されている方法は発生していないプラットフォーム固有のAPIの割り当てを引き起こしている場合、私は疑問に思う

答えて

1

おかげで、@ginty:

は、ここでは、テスト状況では複数のインターフェイスの作成に対処する方法の既存の例があります。それが問題になってしまった。私は以前にそれらをクリアして戻すだけで、以前はインタフェースを混乱させていましたが、Origen.interfaceを実際に設定していませんでした。

私はこれを動作させることができました。それは一番美しいものではありませんが、働いているようです。 93KへのJ750から切り替えるには私がやった:

# Create a dummy file for the V93K interface to use. Doesn't need to exists, it won't actually be used, just needs to be set. 
Origen.file_handler.current_file = Pathname.new("#{Origen.app.root}/temp.rb") 

# Load V93K environment and reload the target. 
Origen.environment.temporary = 'v93k.rb' 
Origen.load_target('default') 

# Clear the existing interface and reset Origen's current interface. 
# ASIDE: this must be done after setting the current tester. 
Origen.interfaces.clear 
Origen.reset_interface 

これは実際にインタフェースをクリアし、「NoInterface」に設定するが、少なくとも仕様のテストの目的のために、すべて同じように動作しているようだれます。実際にシートを生成するときにこれが問題になるかどうかはわかりませんが、わかります。

+0

質問に答えてマークするには、この回答@coreyengを受け入れる必要があります – Ginty

1

、こちらをご覧ください:https://github.com/Origen-SDK/origen_testers/blob/master/lib/origen_testers/program_generators.rb#L23

あなたがかもしれませんそれが役立つかどうかを確認するために手動でc._load_generatorを呼び出してみてください。また

は、明示的に発電機を含める:include OrigenTesters::V93K::Generator

はあなたのTIPShared::Interfaces::AnalogTestBaseモジュールは、テラダイン・ジェネレータを含むだろうか?

EDIT:

さらなる議論した後、問題が作成された新しいインターフェースがOrigen.interfaceに割り当てされていないことであることが表示されます。 https://github.com/Origen-SDK/origen_testers/blob/master/spec/interface_spec.rb#L22

+0

私はそれらの3つすべてを試してみましたが、無駄です。私もOrigenTesters :: SmartestBasedTester :: V93Kから継承しようとしましたが、どちらもうまくいきませんでした。そのモジュール以来、一度しかロードされておらず、ロードされて以来、テスターが変更されたときや新しいインターフェースがそれを含むときには再評価されないようです。私はJ750のすべてのテストを削除すれば動作することを確認しました。 いずれにしても、RSpecは私が思っていたようなものを「再読み込み」していません。私は自分自身でモジュールを定義していませんでしたが、現在は積極的に関心を寄せています。リロードの方法が必要なようです。 – coreyeng

+0

私は問題を見ると思いますが、新しいインターフェイスオブジェクトを作成しているかもしれませんが、Origen.interfaceに割り当てられていません。つまり、作成した最初のインターフェイスを参照するようなパスです。https://github.com/ Origen-SDK/origen_testers/blob/master/lib/origen_testers/smartest_based_tester/base/test_suites.rb#L31 – Ginty

+0

はい、これもやっています。私はインターフェースをクリアして、プログラムジェネレーターにそれを追加して手作業で追加させました。同じ結果。テスターが変わったときにインターフェースモジュール自体は更新されないようです。 – coreyeng