1. Home
    1. Dashboard
    2. Search
  2. Forum
    1. Unresolved Threads
    2. Members
      1. Recent Activities
      2. Users Online
      3. Team Members
      4. Search Members
      5. Trophys
  3. Articles
  4. Blog
  5. Videos
  6. Jobs
  7. Shop
    1. Orders
  • Login or register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Blog Articles
  • Products
  • More Options
  1. Robotforum - Support and discussion community for industrial robots and cobots
  2. Forum
  3. Industrial Robot Support and Discussion Center
  4. Fanuc Robot Forum
Your browser does not support videos RoboDK Software for simulation and programming
Visit our Mainsponsor
IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Sponsored Ads

KAREL unit testing framework

  • jay
  • March 1, 2014 at 5:19 PM
  • Thread is Resolved
  • jay
    Reactions Received
    25
    Trophies
    3
    Posts
    82
    • March 1, 2014 at 5:19 PM
    • #1

    Hey everyone,

    Just wanted to quickly share an open source project I've been working on: KUnit, a unit testing framework for KAREL. It provides some simple structures and assertions for writing automated unit tests on the controller.

    I wrote a blog post about it here: Introducing KUnit

    You can download and view the source code on GitHub: https://github.com/onerobotics/KUnit/

    It basically allows you to write small tests/assertions about your KAREL code and then use a web browser to see the test output.

    Example:

    Code
    PROGRAM test_add_int
      -- %NOLOCKGROUP is required to run KAREL from browser
      %NOLOCKGROUP
      -- %INCLUDE the KUnit routines
      %INCLUDE kunit.h
    
    
      -- the ROUTINE under test
      ROUTINE add_int(l : INTEGER; r : INTEGER) : INTEGER
      BEGIN
        RETURN(l + r)
      END add_int
    
    
      -- 1 + 1 = 2
      ROUTINE test_11 : BOOLEAN
      BEGIN
        RETURN(kunit_eq_int(2, add_int(1,1)))
      END test_11
    
    
      -- 2 + 2 = 4
      ROUTINE test_22 : BOOLEAN
      BEGIN
        RETURN(kunit_eq_int(4, add_int(2,2)))
      END test_22
    
    
      -- 0 + 0 = 0
      ROUTINE test_00 : BOOLEAN
      BEGIN
        RETURN(kunit_eq_int(0, add_int(0,0)))
      END test_00
    
    
      BEGIN
        -- initialize KUnit
        kunit_init
    
    
        -- do some tests
        kunit_test('1+1=2', test_11)
        kunit_test('2+2=4', test_22)
        kunit_test('0+0=0', test_00)
    
    
        -- output the test suite results
        kunit_output
      END test_add_int
    Display More

    Run the program in the browser via http://robot.ip.address/KAREL/test_add_int and see:

    Code
    KUnit
    
    
    ...
    
    
    Finished in 0.002 seconds
    1500.0 tests/sec, 1500.0 assertions/sec
    
    
    3 tests, 3 assertions, 0 failures
    Display More

    Give it a shot and let me know if you have any questions, issues, feedback, feature requests, etc. Pull requests gladly accepted :smiling_face:

    ONE Robotics Company

    Edited once, last by jay (March 1, 2014 at 7:30 PM).

Advertising from our partners

IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Advertise in Robotics
Advertise in Robotics

Job Postings

  • Anyware Robotics is hiring!

    yzhou377 February 23, 2025 at 4:54 AM
  • How to see your Job Posting (search or recruit) here in Robot-Forum.com

    Werner Hampel November 18, 2021 at 3:44 PM
Your browser does not support videos RoboDK Software for simulation and programming

Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • krc5
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000

Thread Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • krc5
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000
  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™
As a registered Member:
* You will see no Google advertising
* You can translate posts into your local language
* You can ask questions or help the community with your knowledge
* You can thank the authors for their help
* You can receive notifications of replies or new topics on request
* We do not sell your data - we promise

JOIN OUR GREAT ROBOTICS COMMUNITY.
Don’t have an account yet? Register yourself now and be a part of our community!
Register Yourself Lost Password
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on Google Play
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on the App Store
Download