আরডুইনো সোর্স কোড কীভাবে স্বয়ংক্রিয়ভাবে পরীক্ষা করা যেতে পারে (একটানা সংহতকরণ)?


17

আমি ক্রমাগত পরীক্ষার মাধ্যমে উত্স নিয়ন্ত্রণে আমার আরডিনো উত্স কোড (প্রকল্প এবং গ্রন্থাগার) পরিচালনা করতে চাই। প্রতিটি সংস্করণটি পরিষ্কারভাবে সংকলিত হয়েছে তা নিশ্চিত করার জন্য আমি কীভাবে অবিচ্ছিন্ন ইন্টিগ্রেশন সরঞ্জামগুলি দিয়ে স্বয়ংক্রিয়ভাবে কোডটি সংকলন করতে পারি? সেরা ক্ষেত্রে একাধিক প্রসেসরের জন্য বিল্ডগুলি কনফিগার করতে, বিকল্পভাবে ইউনিট পরীক্ষা চালানো এবং সর্বাধিক বাইনারি আকারের জন্য পরীক্ষা করতে সক্ষম হওয়া উচিত।


এটাও ইনো দিয়ে কেটে যাওয়া ছাড়া avr-size?
ইগনাসিও ওয়াজকেজ-আব্রামস

@ IgnacioVazquez-Abram কোন সরঞ্জামগুলি ব্যবহার করবেন তা আমি আপত্তি করি না তবে এটি কিছু মেঘ হোস্টিং বা ক্রমাগত ইন্টিগ্রেশন পরিষেবাটিতে স্বয়ংক্রিয়ভাবে চালিত হওয়া উচিত।
জাকোব

1
বাইনারি আকারের সংকলনটি তেমন শক্ত নয়, তবে ইউনিট পরীক্ষাগুলি করার জন্য আপনাকে নিজের কোডটি এমনভাবে গঠন করতে হবে যে এটি ইউনিট-টেস্টেবল, যা আপনি যদি আকার ছোট রাখতে চান তবে যথেষ্ট শক্ত hard তদতিরিক্ত, আপনার কমপক্ষে নির্ভরযোগ্য এমন একটি পরীক্ষা পাওয়ার জন্য আপনাকে এই চিপগুলি একটি চিপ বা একটি এমুলেটরে চালাতে হবে।
গোলেজট্রোল

আমি github.com/kyab/travis-test-arduino খুঁজে পেয়েছি তবে এর পরীক্ষামূলক এবং উত্তর হিসাবে একটি বিস্তৃত উত্তর / টিউটোরিয়াল আরও ভাল হবে।
Jakob

3
এটি হ'ল সমস্যাটি হ'ল এটি একটানা সংহতকরণের মূল উদ্দেশ্যটির বিরুদ্ধে যায়: এর অর্থ পরিবর্তনগুলি ধাক্কা দেওয়া এবং তারপরে এটি স্বয়ংক্রিয়ভাবে তৈরি হওয়া এবং কয়েক মিনিটের মধ্যে স্থাপন করা। এটি আপনার গ্রাহকদের প্রতি দুই মাসের পরিবর্তে সর্বশেষতম বৈশিষ্ট্য এবং সংশোধনগুলি ঘটতে পারে। আরডুইনোর পক্ষে এটি কেবল "মেঘ তৈরি করে তা নিশ্চিত করে"। ইউনিট পরীক্ষার জন্য আপনাকে ফাংশন তৈরি করতে আরডিনো লাইব্রেরিগুলিকে বাইপাস করতে হতে পারে এবং "পিনগুলি" -র উপরে উদাহরণ ডেটা প্রেরণ করতে পারে।
বেনামে পেঙ্গুইন

উত্তর:


6

আরডুইনো আইডির নতুনতম সংস্করণে কোড তৈরি এবং আপলোড করার জন্য একটি কমান্ড লাইন ইন্টারফেস রয়েছে। তবে আপনি অবশ্যই এটি Makefile এবং avrdude দ্বারা করতে পারেন। এখন, আপনি নিজের কোডটি সংকলন করেছেন তবে আপনাকে পরীক্ষা করতে হবে। যেহেতু সিমুলেটর জটিল, অসম্পূর্ণ, বিস্তৃত এবং .. মাত্র একটি সিমুলেশন, এবং চিপ তুলনামূলকভাবে সস্তা হওয়ায় বোর্ড ডাইনি তৈরি করা এইচডব্লিউ ইন্টারঅ্যাকশন তৈরি করবে এবং ফলাফলগুলি তার দ্রুততম এবং সহজতম পদ্ধতিতে পরীক্ষা করবে। সেই "বিশেষ" বোর্ডে আপনি দোভাষী ডাইনির মতো কিছু আপলোড করতে পারেন পিসি থেকে একটি পরীক্ষা নেবেন এবং এটি চালান, আরডুইনোর জন্য ফারমাতার অনুরূপ কিছু। কমপক্ষে এটি আমি এটি তৈরি করব। এবং যতদূর আমি জানি এটির কোনও বাস্তবায়ন নেই, যদিও আমি নিশ্চিত যে অনেক শিল্পের উচিত এবং সম্ভবত এটি করা উচিত।


4

প্ল্যাটফর্মআইওর স্রষ্টা হিসাবে আমি আপনাকে এটি সন্ধান করার পরামর্শ দিচ্ছি। এটি ক্রস-প্ল্যাটফর্ম কোড নির্মাতা এবং অনুপস্থিত গ্রন্থাগার পরিচালক। এটি বহু জনপ্রিয় এম্বেডড ডেভলপমেন্ট প্ল্যাটফর্ম এবং বোর্ডগুলির জন্য একই কোডটি তৈরি করতে পারে।

প্ল্যাটফর্মআইওকে অনেক জনপ্রিয় অবিচ্ছিন্ন ইন্টিগ্রেশন (সিআই) সিস্টেমের (বা আপনার নিজস্ব) সাথে একীভূত করা যেতে পারে । উদাহরণ সহ ডকুমেন্টেশন দেখুন ।

.travis.ymlট্র্যাভিস সিআই-এর জন্য কনফিগারেশন / টেমপ্লেটটি দেখে নেওয়া যাক :

language: python
python:
    - "2.7"

env:
    - PLATFORMIO_CI_SRC=path/to/source/file.c
    - PLATFORMIO_CI_SRC=path/to/source/file.ino
    - PLATFORMIO_CI_SRC=path/to/source/directory

install:
    - python -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)"

script:
    - platformio ci --board=TYPE_1 --board=TYPE_2 --board=TYPE_N

উদাহরণ

USB_Host_Shield_2.0প্রকল্পের জন্য সংহতকরণ। .travis.ymlকনফিগারেশন ফাইল:

language: python
python:
    - "2.7"

env:
    - PLATFORMIO_CI_SRC=examples/acm/acm_terminal
    - PLATFORMIO_CI_SRC=examples/Bluetooth/WiiIRCamera PLATFORMIO_BUILD_FLAGS="-DWIICAMERA"
    - PLATFORMIO_CI_SRC=examples/ftdi/USBFTDILoopback
    - PLATFORMIO_CI_SRC=examples/Xbox/XBOXUSB
    # - ...

install:
    - python -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)"

    # Libraries from PlatformIO Library Registry
    # http://platformio.org/#!/lib/show/416/TinyGPS
    # http://platformio.org/#!/lib/show/417/SPI4Teensy3
    - platformio lib install 416 417

script:
    - platformio ci --board=uno --board=teensy31 --board=due --lib="."

3
আপনি যদি প্লাটফর্মআইও এর সাথে যুক্ত বা যুক্ত থাকেন তবে আপনার উত্তরে এটি প্রকাশ করা উচিত, অথবা এটি স্প্যাম হিসাবে পতাকাঙ্কিত এবং সরানো হতে পারে। ধন্যবাদ!
নিক গ্যামন

3

আরডিনো প্রকল্পের জন্য জেনকিন্স অবিচ্ছিন্ন সংহতকরণ স্থাপনের একটি উদাহরণ এখানে পাওয়া যাবে: এম্বেড থাকা সিস্টেমগুলির জন্য অবিচ্ছিন্ন সংহতকরণ

উদাহরণটি দেখায় যে কীভাবে আরডুইনোতে চিত্র তৈরি করা এবং আপলোড করা যায় এবং সেলেনিয়াম ওয়েব টেস্টগুলি কার্যকর করা যায় (পরীক্ষার অধীনে থাকা সিস্টেমটি আরডুইনো-ভিত্তিক ওয়েব-সার্ভার)।


চমৎকার কারণ এটি কিছু বিদ্যমান সফ্টওয়্যার ডাইনি ব্যবহার করে বৈশিষ্ট্য সমৃদ্ধ। তবে এটি কেবল ওয়েব টেস্টিংয়ের মতো বলে মনে হচ্ছে; আপনি দয়া করে উত্তর প্রসারিত করতে পারেন? লিঙ্ক-ভিত্তিক উত্তরগুলিও খারাপ।
লেস্টো

3

আমি আরডুইনোর জন্য এই পরীক্ষার এককতম কাঠামোটি লিখেছি , যেহেতু আমি যথাযথ উপস্থিতি পাই না। যদিও আমি এটি সিআইয়ের জন্য লিখিনি, এটি সিআই কাজের পক্ষে উপযুক্ত হবে কারণ এটির জন্য কোনও হার্ডওয়ারের প্রয়োজন নেই তবে এটি পিসিতে চালানো যেতে পারে।

হার্ডওয়্যার ছাড়াই সিআই চাকরি চালানোর ভাল দিকগুলি এবং খারাপ দিক রয়েছে, এটি ভাল দিক sides

  • কোনও ফ্ল্যাশিং নেই, কোনও হার্ডওয়্যার প্রয়োজন নেই -> সমান্তরালভাবে চালানো যেতে পারে -> প্রতিটি প্রতিশ্রুতি হিসাবে উদাহরণস্বরূপ পরীক্ষা করা
  • পরীক্ষাগুলিকে প্রভাবিত করার জন্য কোনও হার্ডওয়্যার সমস্যা নেই -> উদ্বেগের দরকার নেই এই পরীক্ষাটি কেবল ব্যর্থ হয়েছিল কারণ আমার এক্সওয়াইজেড-হার্ডওয়্যার উপাদানটি স্থিতিশীল নয় because

খারাপ দিকটিতে রয়েছে:

  • এটি প্রকৃত লক্ষ্য কোডটি পরীক্ষা করছে না, উদাহরণস্বরূপ আপনার 'ইনট' আপনার পিসিতে 32 বিট এবং এভিআর-তে 16 বিট।

" আপনার 'ইন্ট' আপনার পিসিতে 64 বিট ": আপনার সম্ভবত সম্ভবত "32 বিট" অর্থ, বা আপনি কিছু বিদেশী ওএস ব্যবহার করছেন।
এডগার বোনেট

আপনি অবশ্যই ঠিক আছেন, ধন্যবাদ। আমি ঠিক করতে আমার উত্তর সম্পাদনা করেছি।
সুসুন্ডবার্গ

নোট করুন আপনি কোনও এইচডাব্লু বোর্ডের কাছে রাস্পবেরির মতো সস্তা পিসি সহ একটি অভ্যন্তরীণ সিআই সার্ভার সেট আপ করতে পারেন এবং সিআই অবকাঠামোগুলির একটি অংশ বাস্তব এইচডাব্লুতে চলতে পারে (সম্ভবত ডিফল্ট ক্লাউড সিআই রেখে যা সমস্ত সফ্টওয়্যার রয়েছে )
Lesto

3

আমি লিখেছিলাম একটি আরডুইনো সিআই / ইউনিট পরীক্ষার কাঠামো সম্পর্কে এই সম্পর্কিত প্রশ্নের উত্তর হিসাবে আমি একটি শালীন আকারের লেখার ব্যবস্থা একসাথে রেখেছি যা আমি লিখেছিলাম যা পরিশেষে প্রকাশ্যে কথা বলা শুরু করার জন্য যথেষ্ট পরিপক্ক।

arduino_ciরুবি মণি উভয় স্থানীয় টেস্টিং এবং ট্রাভিস সি আই ইন্টিগ্রেশন (যেমন সমর্থন Adafruit FONA লাইব্রেরির জন্য এই বিল্ড কাজ )।

এটি কীভাবে সংহত হয় তার কয়েকটি উদাহরণ:

স্কেচের আকারের প্রতিবেদন করার জন্য আমার একটি সমস্যা তৈরি হয়েছে তবে এটি নিয়ে কোনও কাজ করা হয়নি। এটিও সম্ভব যে আমি কোনও দিন বিল্ডগুলির সমান্তরাল করতে পারব, তবে এই মুহূর্তে আমি কীভাবে করব তা নিশ্চিতভাবে নিশ্চিত নই। এই মুহুর্তে, ট্র্যাভিস সিআই-তে সর্বাধিক সময় গ্রহণকারী বিল্ড পদক্ষেপটি আরডুইনো আইডিই ডাউনলোড করা হচ্ছে ... সমান্তরাল পরীক্ষায় যদি কোনও কাজ এই পদক্ষেপটি করা দরকার হয় তবে তাতে খুব একটা ঝোঁক পড়বে না।


1

আমি স্লুয়েবার স্লোবার নামক অর্ডিনো গ্রহন প্লাগইনটি ব্যবহার করার পরামর্শ দেব , যার মধ্যে আমি প্রকল্পের শীর্ষস্থানীয়
এটি সংস্করণ নিয়ন্ত্রণের সাথে সংহত করে এবং একাধিক প্ল্যাটফর্মগুলিতে বিল্ডিংয়ের অনুমতি দেয় কারণ এটি একাধিক কনফিগারেশন সমর্থন করে।
যদিও এটি এখনও নির্বোধ প্রমাণ নয় তবে আমি গুগল পরীক্ষার কাঠামোটি ব্যবহার করে স্থানীয় পিসিতে আরডুইনো কোডের ইউনিট টেস্টিং ব্যবহার করে ডকুমেন্ট করেছি এবং প্রদর্শন করেছি।
আপনি কীভাবে এটি করতে পারেন তার উপস্থাপনা সম্বলিত একটি ব্লগের এখানে একটি লিঙ্ক। http://blog.baeyens.it/#post25

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.