
<!doctype html>
<html lang="en" class="no-js">
  <head>
    
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width,initial-scale=1">
      
      
      
      
      <link rel="icon" href="../../assets/images/favicon.png">
      <meta name="generator" content="mkdocs-1.1.2, mkdocs-material-7.1.5">
    
    
      
        <title>Unit Testing (EUnit) - Epsilon</title>
      
    
    
      <link rel="stylesheet" href="../../assets/stylesheets/main.bde7dde4.min.css">
      
        
        <link rel="stylesheet" href="../../assets/stylesheets/palette.ef6f36e2.min.css">
        
          
          
          <meta name="theme-color" content="#000000">
        
      
    
    
    
      
        
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700%7CRoboto+Mono&display=fallback">
        <style>:root{--md-text-font-family:"Roboto";--md-code-font-family:"Roboto Mono"}</style>
      
    
    
    
      <link rel="stylesheet" href="../../assets/stylesheets/mermaid.css">
    
      <link rel="stylesheet" href="../../assets/javascript/google-code-prettify/prettify.css">
    
      <link rel="stylesheet" href="https://unpkg.com/mermaid@8.5.1/dist/mermaid.css">
    
      <link rel="stylesheet" href="../../assets/stylesheets/slick.css">
    
      <link rel="stylesheet" href="../../assets/stylesheets/slick-theme.css">
    
      <link rel="stylesheet" href="../../assets/stylesheets/extra.css">
    
    
      
        
<script>
  window.ga = window.ga || function() {
    (ga.q = ga.q || []).push(arguments)
  }
  ga.l = +new Date
  /* Setup integration and send page view */
  ga("create", "UA-184785655-1", "auto")
  ga("set", "anonymizeIp", true)
  ga("send", "pageview")
  /* Register handler to log search on blur */
  document.addEventListener("DOMContentLoaded", () => {
    if (document.forms.search) {
      var query = document.forms.search.query
      query.addEventListener("blur", function() {
        if (this.value) {
          var path = document.location.pathname;
          ga("send", "pageview", path + "?q=" + this.value)
        }
      })
    }
  })
</script>
<script async src="https://www.google-analytics.com/analytics.js"></script>
      
    
    
  </head>
  
  
    
    
    
    
    
    <body dir="ltr" data-md-color-scheme="" data-md-color-primary="black" data-md-color-accent="orange">
  
    
    <script>function __prefix(e){return new URL("../..",location).pathname+"."+e}function __get(e,t=localStorage){return JSON.parse(t.getItem(__prefix(e)))}</script>
    
    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
    <label class="md-overlay" for="__drawer"></label>
    <div data-md-component="skip">
      
        
        <a href="#the-epsilon-unit-testing-framework-eunit" class="md-skip">
          Skip to content
        </a>
      
    </div>
    <div data-md-component="announce">
      
    </div>
    
      <header class="md-header" data-md-component="header">
  <nav class="md-header__inner md-grid" aria-label="Header">
    <a href="../.." title="Epsilon" class="md-header__button md-logo" aria-label="Epsilon" data-md-component="logo">
      
  <img src="../../assets/images/epsilon-white-background.png" alt="logo">

    </a>
    <label class="md-header__button md-icon" for="__drawer">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
    </label>
    <div class="md-header__title" data-md-component="header-title">
      <div class="md-header__ellipsis">
        <div class="md-header__topic">
          <span class="md-ellipsis">
            Epsilon
          </span>
        </div>
        <div class="md-header__topic" data-md-component="header-topic">
          <span class="md-ellipsis">
            
              Unit Testing (EUnit)
            
          </span>
        </div>
      </div>
    </div>
    
    
    
      <label class="md-header__button md-icon" for="__search">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
      </label>
      
<div class="md-search" data-md-component="search" role="dialog">
  <label class="md-search__overlay" for="__search"></label>
  <div class="md-search__inner" role="search">
    <form class="md-search__form" name="search">
      <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active" required>
      <label class="md-search__icon md-icon" for="__search">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
      </label>
      <button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
      </button>
    </form>
    <div class="md-search__output">
      <div class="md-search__scrollwrap" data-md-scrollfix>
        <div class="md-search-result" data-md-component="search-result">
          <div class="md-search-result__meta">
            Initializing search
          </div>
          <ol class="md-search-result__list"></ol>
        </div>
      </div>
    </div>
  </div>
</div>
    
    
      <div class="md-header__source">
        
<a href="https://git.eclipse.org/c/epsilon/org.eclipse.epsilon.git/" title="Go to repository" class="md-source" data-md-component="source">
  <div class="md-source__icon md-icon">
    
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
  </div>
  <div class="md-source__repository">
    Git repository @ Eclipse
  </div>
</a>
      </div>
    
  </nav>
</header>
    
    <div class="md-container" data-md-component="container">
      
      
        
      
      <main class="md-main" data-md-component="main">
        <div class="md-main__inner md-grid">
          
            
              
              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    


<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
  <label class="md-nav__title" for="__drawer">
    <a href="../.." title="Epsilon" class="md-nav__button md-logo" aria-label="Epsilon" data-md-component="logo">
      
  <img src="../../assets/images/epsilon-white-background.png" alt="logo">

    </a>
    Epsilon
  </label>
  
    <div class="md-nav__source">
      
<a href="https://git.eclipse.org/c/epsilon/org.eclipse.epsilon.git/" title="Go to repository" class="md-source" data-md-component="source">
  <div class="md-source__icon md-icon">
    
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
  </div>
  <div class="md-source__repository">
    Git repository @ Eclipse
  </div>
</a>
    </div>
  
  <ul class="md-nav__list" data-md-scrollfix>
    
      
      
      

  
  
  
    <li class="md-nav__item">
      <a href="../.." class="md-nav__link">
        Home
      </a>
    </li>
  

    
      
      
      

  
  
  
    <li class="md-nav__item">
      <a href="../../download/" class="md-nav__link">
        Download
      </a>
    </li>
  

    
      
      
      

  
  
  
    <li class="md-nav__item">
      <a href="../../getting-started/" class="md-nav__link">
        Getting Started
      </a>
    </li>
  

    
      
      
      

  
  
  
    <li class="md-nav__item">
      <a href="../../live" class="md-nav__link">
        Playground
      </a>
    </li>
  

    
      
      
      

  
  
    
  
  
    
    <li class="md-nav__item md-nav__item--active md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" checked>
      
      <label class="md-nav__link" for="__nav_5">
        Documentation
        <span class="md-nav__icon md-icon"></span>
      </label>
      <nav class="md-nav" aria-label="Documentation" data-md-level="1">
        <label class="md-nav__title" for="__nav_5">
          <span class="md-nav__icon md-icon"></span>
          Documentation
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
  
  
  
    <li class="md-nav__item">
      <a href="../" class="md-nav__link">
        Overview
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../emc/" class="md-nav__link">
        Model Connectivity
      </a>
    </li>
  

          
            
  
  
    
  
  
    
    <li class="md-nav__item md-nav__item--active md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5_3" type="checkbox" id="__nav_5_3" checked>
      
      <label class="md-nav__link" for="__nav_5_3">
        Languages
        <span class="md-nav__icon md-icon"></span>
      </label>
      <nav class="md-nav" aria-label="Languages" data-md-level="2">
        <label class="md-nav__title" for="__nav_5_3">
          <span class="md-nav__icon md-icon"></span>
          Languages
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
  
  
  
    <li class="md-nav__item">
      <a href="../eol/" class="md-nav__link">
        Object Language (EOL)
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../egl/" class="md-nav__link">
        Code Generation (EGL)
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../evl/" class="md-nav__link">
        Model Validation (EVL)
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../etl/" class="md-nav__link">
        Model Transformation (ETL)
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../ecl/" class="md-nav__link">
        Model Comparison (ECL)
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../eml/" class="md-nav__link">
        Model Merging (EML)
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../epl/" class="md-nav__link">
        Pattern Matching (EPL)
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../flock/" class="md-nav__link">
        Model Migration (Flock)
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../emg/" class="md-nav__link">
        Model Generation (EMG)
      </a>
    </li>
  

          
            
  
  
    
  
  
    <li class="md-nav__item md-nav__item--active">
      
      <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
      
      
        
      
      
        <label class="md-nav__link md-nav__link--active" for="__toc">
          Unit Testing (EUnit)
          <span class="md-nav__icon md-icon"></span>
        </label>
      
      <a href="./" class="md-nav__link md-nav__link--active">
        Unit Testing (EUnit)
      </a>
      
        
<nav class="md-nav md-nav--secondary">
  
  
    
  
  
    <label class="md-nav__title" for="__toc">Table of contents</label>
    <ul class="md-nav__list" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#common-issues" class="md-nav__link">
    Common Issues
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#testing-with-junit" class="md-nav__link">
    Testing with JUnit
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#selected-approach" class="md-nav__link">
    Selected Approach
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#test-organization" class="md-nav__link">
    Test Organization
  </a>
  
    <nav class="md-nav" aria-label="Test Organization">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#test-suites" class="md-nav__link">
    Test Suites
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#test-cases" class="md-nav__link">
    Test Cases
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#test-specification" class="md-nav__link">
    Test Specification
  </a>
  
    <nav class="md-nav" aria-label="Test Specification">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#ant-buildfile" class="md-nav__link">
    Ant Buildfile
  </a>
  
    <nav class="md-nav" aria-label="Ant Buildfile">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#eunit-invocations" class="md-nav__link">
    EUnit Invocations
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#helper-targets" class="md-nav__link">
    Helper Targets
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
        
          <li class="md-nav__item">
  <a href="#eol-script" class="md-nav__link">
    EOL script
  </a>
  
    <nav class="md-nav" aria-label="EOL script">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#data-bindings" class="md-nav__link">
    Data bindings
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#model-bindings" class="md-nav__link">
    Model bindings
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#additional-variables-and-built-in-operations" class="md-nav__link">
    Additional variables and built-in operations
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#assertions" class="md-nav__link">
    Assertions
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#examples" class="md-nav__link">
    Examples
  </a>
  
    <nav class="md-nav" aria-label="Examples">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#models-and-tasks-in-the-buildfile" class="md-nav__link">
    Models and Tasks in the Buildfile
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#models-and-tasks-in-the-eol-script" class="md-nav__link">
    Models and Tasks in the EOL Script
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#extending-eunit" class="md-nav__link">
    Extending EUnit
  </a>
  
</li>
      
      
      
      
      
    </ul>
  
  
</nav>
      
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../pinset/" class="md-nav__link">
        Dataset Extraction (Pinset)
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../ewl/" class="md-nav__link">
        Wizard Language (EWL)
      </a>
    </li>
  

          
        </ul>
      </nav>
    </li>
  

          
            
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5_4" type="checkbox" id="__nav_5_4" >
      
      <label class="md-nav__link" for="__nav_5_4">
        Tools
        <span class="md-nav__icon md-icon"></span>
      </label>
      <nav class="md-nav" aria-label="Tools" data-md-level="2">
        <label class="md-nav__title" for="__nav_5_4">
          <span class="md-nav__icon md-icon"></span>
          Tools
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
  
  
  
    <li class="md-nav__item">
      <a href="../picto/" class="md-nav__link">
        Picto
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../flexmi/" class="md-nav__link">
        Flexmi
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../eugenia/" class="md-nav__link">
        Eugenia
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../exeed/" class="md-nav__link">
        Exeed
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../modelink/" class="md-nav__link">
        Modelink
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../hutn/" class="md-nav__link">
        HUTN
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../workflow/" class="md-nav__link">
        Workflow (Ant tasks)
      </a>
    </li>
  

          
        </ul>
      </nav>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../articles/" class="md-nav__link">
        Articles
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../../examples/" class="md-nav__link">
        Examples
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="https://www.youtube.com/epsilondevs" class="md-nav__link">
        Screencasts
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="https://www.youtube.com/playlist?list=PLRwHao6Ue0YUecg7vEUQTrtySIWwrd_mI" class="md-nav__link">
        Lectures
      </a>
    </li>
  

          
            
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5_9" type="checkbox" id="__nav_5_9" >
      
      <label class="md-nav__link" for="__nav_5_9">
        Javadoc
        <span class="md-nav__icon md-icon"></span>
      </label>
      <nav class="md-nav" aria-label="Javadoc" data-md-level="2">
        <label class="md-nav__title" for="__nav_5_9">
          <span class="md-nav__icon md-icon"></span>
          Javadoc
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
  
  
  
    <li class="md-nav__item">
      <a href="https://download.eclipse.org/epsilon/stable-javadoc/" class="md-nav__link">
        Stable
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="https://download.eclipse.org/epsilon/interim-javadoc/" class="md-nav__link">
        Interim
      </a>
    </li>
  

          
        </ul>
      </nav>
    </li>
  

          
        </ul>
      </nav>
    </li>
  

    
      
      
      

  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
      
      <label class="md-nav__link" for="__nav_6">
        Issues
        <span class="md-nav__icon md-icon"></span>
      </label>
      <nav class="md-nav" aria-label="Issues" data-md-level="1">
        <label class="md-nav__title" for="__nav_6">
          <span class="md-nav__icon md-icon"></span>
          Issues
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
  
  
  
    <li class="md-nav__item">
      <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=epsilon" class="md-nav__link">
        Report a new issue
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=epsilon&cmdtype=doit&order=Reuse+same+sort+as+last+time&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_severity=blocker&bug_severity=critical&bug_severity=major&bug_severity=normal&bug_severity=minor&bug_severity=trivial" class="md-nav__link">
        View open bugs
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=epsilon&cmdtype=doit&order=Reuse+same+sort+as+last+time&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_severity=enhancement" class="md-nav__link">
        View enhancement requests
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&list_id=17694438&product=epsilon&query_format=advanced" class="md-nav__link">
        View issues resolved since the last stable release
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=epsilon&cmdtype=doit&order=Reuse+same+sort+as+last+time" class="md-nav__link">
        View all issues
      </a>
    </li>
  

          
        </ul>
      </nav>
    </li>
  

    
      
      
      

  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" >
      
      <label class="md-nav__link" for="__nav_7">
        Community
        <span class="md-nav__icon md-icon"></span>
      </label>
      <nav class="md-nav" aria-label="Community" data-md-level="1">
        <label class="md-nav__title" for="__nav_7">
          <span class="md-nav__icon md-icon"></span>
          Community
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7_1" type="checkbox" id="__nav_7_1" >
      
      <label class="md-nav__link" for="__nav_7_1">
        Who is using Epsilon?
        <span class="md-nav__icon md-icon"></span>
      </label>
      <nav class="md-nav" aria-label="Who is using Epsilon?" data-md-level="2">
        <label class="md-nav__title" for="__nav_7_1">
          <span class="md-nav__icon md-icon"></span>
          Who is using Epsilon?
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
  
  
  
    <li class="md-nav__item">
      <a href="../../users/" class="md-nav__link">
        Industry
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../../users/education/" class="md-nav__link">
        Education
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../../users/open-source/" class="md-nav__link">
        Open-source Projects
      </a>
    </li>
  

          
        </ul>
      </nav>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="https://projects.eclipse.org/projects/modeling.epsilon/who" class="md-nav__link">
        Who is developing Epsilon?
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="https://www.eclipse.org/forums/index.php/f/22/" class="md-nav__link">
        Forum
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../../professional-services" class="md-nav__link">
        Professional Services
      </a>
    </li>
  

          
            
  
  
  
    
    <li class="md-nav__item md-nav__item--nested">
      
      
        <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7_5" type="checkbox" id="__nav_7_5" >
      
      <label class="md-nav__link" for="__nav_7_5">
        Social Media
        <span class="md-nav__icon md-icon"></span>
      </label>
      <nav class="md-nav" aria-label="Social Media" data-md-level="2">
        <label class="md-nav__title" for="__nav_7_5">
          <span class="md-nav__icon md-icon"></span>
          Social Media
        </label>
        <ul class="md-nav__list" data-md-scrollfix>
          
            
  
  
  
    <li class="md-nav__item">
      <a href="https://twitter.com/eclipseepsilon" class="md-nav__link">
        Twitter
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="https://youtube.com/epsilondevs" class="md-nav__link">
        YouTube
      </a>
    </li>
  

          
        </ul>
      </nav>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../../labs/" class="md-nav__link">
        Epsilon Labs
      </a>
    </li>
  

          
            
  
  
  
    <li class="md-nav__item">
      <a href="../../faq/" class="md-nav__link">
        Frequently Asked Questions
      </a>
    </li>
  

          
        </ul>
      </nav>
    </li>
  

    
      
      
      

  
  
  
    <li class="md-nav__item">
      <a href="../../branding/" class="md-nav__link">
        Branding
      </a>
    </li>
  

    
  </ul>
</nav>
                  </div>
                </div>
              </div>
            
            
              
              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    
<nav class="md-nav md-nav--secondary">
  
  
    
  
  
    <label class="md-nav__title" for="__toc">Table of contents</label>
    <ul class="md-nav__list" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#common-issues" class="md-nav__link">
    Common Issues
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#testing-with-junit" class="md-nav__link">
    Testing with JUnit
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#selected-approach" class="md-nav__link">
    Selected Approach
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#test-organization" class="md-nav__link">
    Test Organization
  </a>
  
    <nav class="md-nav" aria-label="Test Organization">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#test-suites" class="md-nav__link">
    Test Suites
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#test-cases" class="md-nav__link">
    Test Cases
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#test-specification" class="md-nav__link">
    Test Specification
  </a>
  
    <nav class="md-nav" aria-label="Test Specification">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#ant-buildfile" class="md-nav__link">
    Ant Buildfile
  </a>
  
    <nav class="md-nav" aria-label="Ant Buildfile">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#eunit-invocations" class="md-nav__link">
    EUnit Invocations
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#helper-targets" class="md-nav__link">
    Helper Targets
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
        
          <li class="md-nav__item">
  <a href="#eol-script" class="md-nav__link">
    EOL script
  </a>
  
    <nav class="md-nav" aria-label="EOL script">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#data-bindings" class="md-nav__link">
    Data bindings
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#model-bindings" class="md-nav__link">
    Model bindings
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#additional-variables-and-built-in-operations" class="md-nav__link">
    Additional variables and built-in operations
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#assertions" class="md-nav__link">
    Assertions
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#examples" class="md-nav__link">
    Examples
  </a>
  
    <nav class="md-nav" aria-label="Examples">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#models-and-tasks-in-the-buildfile" class="md-nav__link">
    Models and Tasks in the Buildfile
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#models-and-tasks-in-the-eol-script" class="md-nav__link">
    Models and Tasks in the EOL Script
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#extending-eunit" class="md-nav__link">
    Extending EUnit
  </a>
  
</li>
      
      
      
      
      
    </ul>
  
  
</nav>
                  </div>
                </div>
              </div>
            
          
          <div class="md-content" data-md-component="content">
            <article class="md-content__inner md-typeset">
              
                
                
                <h1 id="the-epsilon-unit-testing-framework-eunit">The Epsilon Unit Testing Framework (EUnit)<a class="headerlink" href="#the-epsilon-unit-testing-framework-eunit" title="Permanent link">&para;</a></h1>
<p>EUnit is an unit testing framework specifically designed to test model management tasks, based on EOL and the Ant workflow tasks. It provides assertions for comparing models, files and directories. Tests can be reused with different sets of models and input data, and differences between the expected and actual models can be graphically visualized. This chapter describes how tests are organized and written and shows two examples of how a model-to-model transformation can be tested with EUnit. This chapter ends with a discussion of how EUnit can be extended to support other modelling and model management technologies.</p>
<h3 id="common-issues">Common Issues<a class="headerlink" href="#common-issues" title="Permanent link">&para;</a></h3>
<p>While each type of model management task does have specific complexity, below is a list of common concerns:</p>
<ul>
<li>
<p>There is usually a large number of models to be handled. Some may be created by hand, some may be generated using hand-written programs, and some may be generated automatically following certain coverage criteria.</p>
</li>
<li>
<p>A single model or set of models may be used in several tasks. For instance, a model may be validated before performing an in-place transformation to assist the user, and later on it may be transformed to another model or merged with a different model. This requires having at least one test for each valid combination of models and sets of tasks.</p>
</li>
<li>
<p>Test oracles are more complex than in traditional unit testing: instead of checking scalar values or simple lists, entire graphs of model objects or file trees may have to be compared. In some cases, complex properties in the generated artifacts may have to be checked.</p>
</li>
<li>
<p>Models and model management tasks may use a wide range of technologies. Models may be based on Ecore, XML files or Java object graphs, among many others. At the same time, tasks may use technologies from different platforms, such as Epsilon, or AMMA. Many of these technologies offer high-level tools for running and debugging the different tasks using several models. However, users wishing to do automated unit testing need to learn low-level implementation details about their modelling and model management technologies. This increases the initial cost of testing these tasks and hampers the adoption of new technologies.</p>
</li>
<li>
<p>Existing testing tools tend to focus on the testing technique itself, and lack integration with external systems. Some tools provide graphical user interfaces, but most do not generate reports which can be consumed by a continuous integration server, for instance.</p>
</li>
</ul>
<h3 id="testing-with-junit">Testing with JUnit<a class="headerlink" href="#testing-with-junit" title="Permanent link">&para;</a></h3>
<p>The previous issues are easier to understand with a concrete example. This section shows how a simple transformation between two EMF models in ETL using JUnit 4 would be normally tested, and points out several issues due to JUnit's limitations as a general-purpose unit testing framework for Java programs.</p>
<p>For the sake of brevity, only an outline of the JUnit test suite is included. All JUnit test suites are defined as Java classes. This test suite has three methods:</p>
<ol>
<li>
<p>The test setup method (marked with the <code>@Before</code> JUnit annotation) loads the required models by creating and configuring instances of . After that, it prepares the transformation by creating and configuring an instance of , adding the input and output models to its model repository.</p>
</li>
<li>
<p>The test case itself (marked with <code>@Test</code>) runs the ETL transformation and uses the generic comparison algorithm implemented by EMF Compare to perform the model comparison.</p>
</li>
<li>
<p>The test teardown method (marked with <code>@After</code>) disposes of the models.</p>
</li>
</ol>
<p>Several issues can be identified in each part of the test suite. First, test setup is tightly bound to the technologies used: it depends on the API of the and classes, which are both part of Epsilon. Later refactorings in these classes may break existing tests.</p>
<p>The test case can only be used for a single combination of input and output models. Testing several combinations requires either repeating the same code and therefore making the suite less maintainable, or using parametric testing, which may be wasteful if not all tests need the same combinations of models.</p>
<p>Model comparison requires the user to manually select a model comparison engine and integrate it with the test. For comparing EMF models, EMF Compare is easy to use and readily available. However, generic model comparison engines may not be available for some modelling technologies, or may be harder to integrate.</p>
<p>Finally, instead of comparing the obtained and expected models, several properties could have been checked in the obtained model. However, querying models through Java code can be quite verbose.</p>
<h3 id="selected-approach">Selected Approach<a class="headerlink" href="#selected-approach" title="Permanent link">&para;</a></h3>
<p>Several approaches could be followed to address these issues. Our first instinct would be to extend JUnit and reuse all the tooling available for it. A custom test runner would simplify setup and teardown, and modelling platforms would integrate their technologies into it. Since Java is very verbose when querying models, the custom runner should run tests in a higher-level language, such as EOL. However, JUnit is very tightly coupled to Java, and this would impose limits on the level of integration we could obtain. For instance, errors in the model management tasks or the EOL tests could not be reported from their original source, but rather from the Java code which invoked them. Another problem with this approach is that new integration code would need to be written for each of the existing platforms.</p>
<p>Alternatively, we could add a new language exclusively dedicated to testing to the Epsilon family. Being based on EOL, model querying would be very concise, and with a test runner written from scratch, test execution would be very flexible. However, this would still require all platforms to write new code to integrate with it, and this code would be tightly coupled to Epsilon.</p>
<p>As a middle ground, we could decorate EOL to guide its execution through a new test runner, while reusing the Apache Ant tasks already provided by several of the existing platforms, such as AMMA or Epsilon. Like Make, Ant is a tool focused on automating the execution of processes such as program builds. Unlike Make, Ant defines processes using XML <em>buildfiles</em> with sets of interrelated <em>targets</em>. Each target contains in turn a sequence of <em>tasks</em>. Many Ant tasks and Ant-based tools already exist, and it is easy to create a new Ant task.</p>
<p>Among these three approaches, EUnit follows the last one. Ant tasks take care of model setup and management, and tests are written in EOL and executed by a new test runner, written from the ground up.</p>
<h2 id="test-organization">Test Organization<a class="headerlink" href="#test-organization" title="Permanent link">&para;</a></h2>
<p>EUnit has a rich data model: test suites are organized as trees of tests, and each test is divided into many parts which can be extended by the user. This section is dedicated to describing how test suites and tests are organized. The next section indicates how they are written.</p>
<h3 id="test-suites">Test Suites<a class="headerlink" href="#test-suites" title="Permanent link">&para;</a></h3>
<p>EUnit test suites are organized as trees: inner nodes group related test cases and define <em>data</em> bindings. Leaf nodes define <em>model</em> bindings and run the test cases.</p>
<p>Data bindings repeat all test cases with different values in one or more variables. They can implement parametric testing, as in JUnit 4. EUnit can nest several data bindings, running all test cases once for each combination.</p>
<p>Model bindings are specific to EUnit: they allow developers to repeat a single test case with different subsets of models. Data and model bindings can be combined. One interesting approach is to set the names of the models to be used in the model binding from the data binding, as a quick way to try several test cases with the same subsets of models.</p>
<p>The figure below shows an example of an EUnit test tree: nodes with data bindings are marked with <code>data</code>, and nodes with model bindings are marked with <code>model</code>.</p>
<div class="mermaid mermaid-90">graph TD
    data1[data&lt;br/&gt;x=1]
    data2[data&lt;br/&gt;x=2]
    testa1[test A]
    testb1[test B]
    testa2[test A]
    testb2[test B]
    modelx1[model X]
    modely1[model Y]
    modelx2[model X]
    modely2[model Y]
    root --&gt; data1
    root --&gt; data2
    data1 --&gt; testa1
    data1 --&gt; testb1
    data2 --&gt; testa2
    data2 --&gt; testb2
    testa1 --&gt; modelx1
    testa1 --&gt; modely1
    testa2 --&gt; modelx2
    testa2 --&gt; modely2</div>
<p>EUnit will perform a preorder traversal of this tree, running the following tests:</p>
<ol>
<li>
<p><code>A</code> with <code>x = 1</code> and model X.</p>
</li>
<li>
<p><code>A</code> with <code>x = 1</code> and model Y.</p>
</li>
<li>
<p><code>B</code> with <code>x = 1</code> and both models.</p>
</li>
<li>
<p><code>A</code> with <code>x = 2</code> and model X.</p>
</li>
<li>
<p><code>A</code> with <code>x = 2</code> and model Y.</p>
</li>
<li>
<p><code>B</code> with <code>x = 2</code> and both models.</p>
</li>
</ol>
<p>Optionally, EUnit can filter tests by name, running only <code>A</code> or <code>B</code>. Similarly to JUnit, EUnit logs start and finish times for each node in the tree, so the most expensive test cases can be quickly detected. However, EUnit logs CPU time<sup id="fnref:1"><a class="footnote-ref" href="#fn:1">1</a></sup> in addition to the usual wallclock time.</p>
<p>Parametric testing is not to be confused with <em>theories</em>: both repeat a test case with different values, but results are reported quite differently. While parametric testing produces separate test cases with independent results, theories produce aggregated tests which only pass if the original test case passes for every data point. The figures below illustrate these differences. EUnit does not support theories yet: however, they can be approximated with data bindings.</p>
<p><div class="mermaid mermaid-50">graph TD
    data1[data 1]
    data2[data 2]
    testa1[test 1]
    testb1[test 2]
    testa2[test 1]
    testb2[test 2]
    root --&gt; data1
    root --&gt; data2
    data1 --&gt; testa1
    data1 --&gt; testb1
    data2 --&gt; testa2
    data2 --&gt; testb2</div>
Parametric Testing</p>
<p><div class="mermaid mermaid-50">graph TD
    data1[test 1]
    data2[test 2]
    testa1[data 1]
    testb1[data 2]
    testa2[data 1]
    testb2[data 2]
    root --&gt; data1
    root --&gt; data2
    data1 --&gt; testa1
    data1 --&gt; testb1
    data2 --&gt; testa2
    data2 --&gt; testb2</div>
Theories</p>
<h3 id="test-cases">Test Cases<a class="headerlink" href="#test-cases" title="Permanent link">&para;</a></h3>
<p>The execution of a test case is divided into the following steps:</p>
<ol>
<li>
<p>Apply the data bindings of its ancestors.</p>
</li>
<li>
<p>Run the model setup sections defined by the user.</p>
</li>
<li>
<p>Apply the model bindings of this node.</p>
</li>
<li>
<p>Run the regular setup sections defined by the user.</p>
</li>
<li>
<p>Run the test case itself.</p>
</li>
<li>
<p>Run the teardown sections defined by the user.</p>
</li>
<li>
<p>Tear down the data bindings and models for this test.</p>
</li>
</ol>
<p>An important difference between JUnit and EUnit is that setup is split into two parts: model setup and regular setup. This split allows users to add code before and after model bindings are applied. Normally, the model setup sections will load all the models needed by the test suite, and the regular setup sections will further prepare the models selected by the model binding. Explicit teardown sections are usually not needed, as models are disposed automatically by EUnit. EUnit includes them for consistency with the xUnit frameworks.</p>
<p>Due to its focus on model management, model setup in EUnit is very flexible. Developers can combine several ways to set up models, such as model references, individual Apache Ant tasks, Apache Ant targets or <a href="../hutn">Human-Usable Text Notation (HUTN)</a> fragments.</p>
<p>A test case may produce one among several results. <code>SUCCESS</code> is obtained if all assertions passed and no exceptions were thrown. <code>FAILURE</code> is obtained if an assertion failed. <code>ERROR</code> is obtained if an unexpected exception was thrown while running the test. Finally, tests may be <code>SKIPPED</code> by the user.</p>
<h2 id="test-specification">Test Specification<a class="headerlink" href="#test-specification" title="Permanent link">&para;</a></h2>
<p>In the previous section, we described how test suites and test cases are organized. In this section, we will show how to write them.</p>
<p>As discussed before, after evaluating several approaches, we decided to combine the expressive power of EOL and the extensibility of Apache Ant. For this reason, EUnit test suites are split into two files: an Ant buildfile and an EOL script with some special-purpose annotations. The next subsections describe the contents of these two files and revisit the previous example with EUnit.</p>
<h3 id="ant-buildfile">Ant Buildfile<a class="headerlink" href="#ant-buildfile" title="Permanent link">&para;</a></h3>
<p>EUnit uses standard Ant buildfiles: running EUnit is as simple as using its Ant task. Users may run EUnit more than once in a single Ant launch: the graphical user interface will automatically aggregate the results of all test suites.</p>
<h4 id="eunit-invocations">EUnit Invocations<a class="headerlink" href="#eunit-invocations" title="Permanent link">&para;</a></h4>
<p>An example invocation of the EUnit Ant task using the most common features is shown in the listing below. Users will normally only use some of these features at a time, though. Optional attributes have been listed between brackets. Some nested elements can be repeated 0+ times (<code>*</code>) or 0-1 times (<code>?</code>). Valid alternatives for an attribute are separated with <code>|</code>.</p>
<div class="highlight"><pre><span></span><code><span class="nt">&lt;epsilon.eunit</span> <span class="na">src=</span><span class="s">&quot;...&quot;</span>
    <span class="err">[</span><span class="na">failOnErrors=</span><span class="s">&quot;...&quot;</span><span class="err">]</span>
    <span class="err">[</span><span class="na">package=</span><span class="s">&quot;..&quot;</span><span class="err">]</span>
    <span class="err">[</span><span class="na">toDir=</span><span class="s">&quot;...&quot;</span><span class="err">]</span>
    <span class="err">[</span><span class="na">report=</span><span class="s">&quot;yes|no&quot;</span><span class="err">]</span><span class="nt">&gt;</span>
  (<span class="nt">&lt;model</span>     <span class="na">ref=</span><span class="s">&quot;OldName&quot;</span> <span class="err">[</span><span class="na">as=</span><span class="s">&quot;NewName&quot;</span><span class="err">]</span><span class="nt">/&gt;</span>)*
  (<span class="nt">&lt;uses</span>      <span class="na">ref=</span><span class="s">&quot;x&quot;</span> <span class="err">[</span><span class="na">as=</span><span class="s">&quot;y&quot;</span><span class="err">]</span> <span class="nt">/&gt;</span>)*
  (<span class="nt">&lt;exports</span>   <span class="na">ref=</span><span class="s">&quot;z&quot;</span> <span class="err">[</span><span class="na">as=</span><span class="s">&quot;w&quot;</span><span class="err">]</span> <span class="nt">/&gt;</span>)*
  (<span class="nt">&lt;parameter</span> <span class="na">name=</span><span class="s">&quot;myparam&quot;</span> <span class="na">value=</span><span class="s">&quot;myvalue&quot;</span> <span class="nt">/&gt;</span>)*
  (<span class="nt">&lt;modelTasks&gt;</span><span class="c">&lt;!-- Zero or more Ant tasks --&gt;</span><span class="nt">&lt;/modelTasks&gt;</span>)?
<span class="nt">&lt;/epsilon.eunit&gt;</span>
</code></pre></div>
<p>The EUnit Ant task is based on the Epsilon abstract executable module task, inheriting some useful features. The attribute <code>src</code> points to the path of the EOL file, and the optional attribute <code>failOnErrors</code> can be set to false to prevent EUnit from aborting the Ant launch if a test case fails. EUnit also inherits support for importing and exporting global variables through the <code>&lt;uses&gt;</code> and <code>&lt;exports&gt;</code> elements: the original name is set in <code>ref</code>, and the optional <code>as</code> attribute allows for using a different name. For receiving parameters as name-value piars, the <code>&lt;parameter&gt;</code> element can be used.</p>
<p>Model references (using the <code>&lt;model&gt;</code> nested element) are also inherited from the Epsilon abstract executable module task. These allow model management tasks to refer by name to models previously loaded in the Ant buildfile. However, EUnit implicitly reloads the models after each test case. This ensures that test cases are isolated from each other.</p>
<p>The EUnit Ant task adds several new features to customize the test result reports and perform more advanced model setup. By default, EUnit generates reports in the XML format of the Ant <code>&lt;junit&gt;</code> task. This format is also used by many other tools, such as the TestNG unit testing framework, the Jenkins continuous integration server or the JUnit Eclipse plug-ins. To suppress these reports, report must be set to no.</p>
<p>By default, the XML report is generated in the same directory as the Ant buildfile, but it can be changed with the <code>toDir</code> attribute. Test names in JUnit are formed by its Java package, class and method: EUnit uses the filename of the EOL script as the class and the name of the EOL operation as the method. By default, the package is set to the string "default": users are encouraged to customize it with the <code>package</code> attribute.
The optional <code>&lt;modelTasks&gt;</code> nested element contains a sequence of Ant tasks which will be run after reloading the model references and before running the model setup sections in the EOL file. This allows users to run workflows more advanced than simply reloading model references.</p>
<h4 id="helper-targets">Helper Targets<a class="headerlink" href="#helper-targets" title="Permanent link">&para;</a></h4>
<p>Ant buildfiles for EUnit may include <em>helper targets</em>. These targets can be invoked using from anywhere in the EOL script. Helper targets are quite versatile: called from an EOL model setup section, they allow for reusing model loading fragments between different EUnit test suites. They can also be used to invoke the model management tasks under test. </p>
<h3 id="eol-script">EOL script<a class="headerlink" href="#eol-script" title="Permanent link">&para;</a></h3>
<p>The Epsilon Object Language script is the second half of the EUnit test suite. EOL annotations are used to tag some of the operations as data binding definitions (<code>@data</code> or <code>@Data</code>), additional model setup sections (<code>@model</code>/<code>@Model</code>), test setup and teardown sections (<code>@setup</code>/<code>@Before</code> and <code>@teardown</code>/<code>@After</code>) and test cases (<code>@test</code>/<code>@Test</code>). Suite setup and teardown sections can also be defined with <code>@suitesetup</code>/<code>@BeforeClass</code> and <code>@suiteteardown</code>/<code>@AfterClass</code> annotations: these operations will be run before and after all tests, respectively.</p>
<h4 id="data-bindings">Data bindings<a class="headerlink" href="#data-bindings" title="Permanent link">&para;</a></h4>
<p>Data bindings repeat all test cases with different values in some variables. To define a data binding, users must define an operation which returns a sequence of elements and is marked with @data variable. All test cases will be repeated once for each element of the returned sequence, setting the specified variable to the corresponding element. Listing 15.2 shows two nested data bindings and a test case which will be run four times: with x=1 and y=5, x=1 and y=6, x=2 and y=5 and finally x=2 and y=6. The example shows how x and y could be used by the setup section to generate an input model for the test. This can be useful if the intent of the test is ensuring that a certain property holds in a class of models, rather than a single model.</p>
<pre class="prettyprint lang-eol"><code>@data x
operation firstLevel()  { return 1.to(2); }

@data y
operation secondLevel() { return 5.to(6); }

@setup
operation generateModel() { /* generate model using x and y */ }

@test
operation mytest() { /* test with the generated model */ }</code></pre>
<p>Alternatively, if both x and y were to use the same sets of values, we could add two @data annotations to the same operation. For instance, the listing below shows how we could test with 4 cases: x=1 and y=1, x=1 and y=2, x=2 and y=1 and x=2 and y=2.</p>
<pre class="prettyprint lang-eol"><code>@data x
@data y
operation levels()  { return 1.to(2); }

@setup
operation generateModel() { /* generate model using x and y */ }

@test
operation mytest() { /* test with the generated model */ }</code></pre>
<h4 id="model-bindings">Model bindings<a class="headerlink" href="#model-bindings" title="Permanent link">&para;</a></h4>
<p>Model bindings repeat a test case with different subsets of models. They can be defined by annotating a test case with <code>$with map</code> or <code>$onlyWith map</code> one or more times, where map is an EOL expression that produces a <code>MAP</code>. For each key-value pair <code>key = value</code>, EUnit will rename the model named <code>value</code> to <code>key</code>. The difference between <code>$with</code> and <code>$onlyWith</code> is how they handle the models not mentioned in the <code>MAP</code>: <code>$with</code> will preserve them as is, and <code>$onlyWith</code> will make them unavailable during the test. <code>$onlyWith</code> is useful for tightly restricting the set of available models in a test and for avoiding ambiguous type references when handling multiple models using the same metamodel.</p>
<p>The listing below shows two tests which will be each run twice. The first test uses <code>$with</code>, which preserves models not mentioned in the MAP: the first time, model "A" will be the default model and model "B" will be the "Other" model, and the second time, model "B" will be the default model and model "A" will be the "Other" model. The second test uses two <code>$onlyWith</code> annotations: on the first run, "A" will be available as "Model" and "B" will not unavailable, and on the second run, only "B" will be available as "Model" and "A" will be unavailable.</p>
<pre class="prettyprint lang-eol"><code>$with Map {"" = "A", "Other" = "B"}
$with Map {"" = "B", "Other" = "A"}
@test
operation mytest() {
  /* use the default and Other models, while
     keeping the rest as is */
}

$onlyWith Map { "Model" = "A" }
$onlyWith Map { "Model" = "B" }
@test
operation mytest2() {
  // first time: A as 'Model', B is unavailable
  // second time: B as 'Model', A is unavailable
}</code></pre>
<h4 id="additional-variables-and-built-in-operations">Additional variables and built-in operations<a class="headerlink" href="#additional-variables-and-built-in-operations" title="Permanent link">&para;</a></h4>
<p>EUnit provides several variables and operations which are useful for testing. These are listed in the table below.</p>
<table>
<thead>
<tr>
<th>Signature</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>runTarget(name : String)</td>
<td>Runs the specified target of the Ant buildfile which invoked EUnit.</td>
</tr>
<tr>
<td>exportVariable(name : String)</td>
<td>Exports the specified variable, to be used by another executable module.</td>
</tr>
<tr>
<td>useVariable(name : String)</td>
<td>Imports the specified variable, which should have been previously exported by another executable module.</td>
</tr>
<tr>
<td>loadHutn(name : String, hutn : String)</td>
<td>Loads an EMF model with the specified name, by parsing the second argument as an HUTN fragment.</td>
</tr>
<tr>
<td>antProject : org.apache.tools.ant.Project</td>
<td>Global variable which refers to the Ant project being executed. This can be used to create and run Ant tasks from inside the EOL code.</td>
</tr>
</tbody>
</table>
<h4 id="assertions">Assertions<a class="headerlink" href="#assertions" title="Permanent link">&para;</a></h4>
<p>EUnit implements some common assertions for equality and inequality,
with special versions for comparing floating-point numbers. EUnit also
supports a limited form of exception testing with , which checks that
the expression inside it throws an exception. Custom assertions can be
defined by the user with the operation, which fails a test with a custom
message. The available assertions are shown in
the table below.</p>
<table>
<thead>
<tr>
<th>Signature</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>assertEqualDirectories(expectedPath : String,obtainedPath : String)</td>
<td>Fails the test if the contents of the directory in differ from those of the directory in . Directory comparisons are performed on recursive snapshots of both directories.</td>
</tr>
<tr>
<td>assertEqualFiles(expectedPath : String,obtainedPath : String)</td>
<td>Fails the test if the contents of the file in differ from those of the file in . File comparisons are performed on snapshots of both files.</td>
</tr>
<tr>
<td>assertEqualModels([msg : String,]expectedModel : String,obtainedModel : String[, options : Map])</td>
<td>Fails the test with the optional message if the model named is not equal to the model named . Model comparisons are performed on snapshots of the resource sets of both models. During EMF comparisons, XMI identifiers are ignored. Additional comparator-specific options can be specified through .</td>
</tr>
<tr>
<td>assertEquals([msg : String,]expected : Any,obtained : Any)</td>
<td>Fails the test with the optional message if the values of and are not equal.</td>
</tr>
<tr>
<td>assertEquals([msg : String,]expected : Real,obtained : Real,ulps : Integer)</td>
<td>Fails the test with the optional message if the values of and differ in more than units of least precision. See <a href="http://download.oracle.com/javase/6/docs/api/java/lang/Math.html#ulp(double)">this site</a> for details.</td>
</tr>
<tr>
<td>assertError(expr : Any)</td>
<td>Fails the test if no exception is thrown during the evaluation of .</td>
</tr>
<tr>
<td>assertFalse([msg : String,]cond : Boolean)</td>
<td>Fails the test with the optional message if is . It is a negated version of assertTrue.</td>
</tr>
<tr>
<td>assertLineWithMatch([msg : String,]path : String,regexp : String)</td>
<td>Fails the test with the optional message if the file at does not have a line containing a substring matching the regular expression <sup id="fnref:2"><a class="footnote-ref" href="#fn:2">2</a></sup>.</td>
</tr>
<tr>
<td>assertMatchingLine([msg : String,]path : String,regexp : String)</td>
<td>Fails the test with the optional message if the file at does not have a line that matches the regular expression <sup id="fnref:3"><a class="footnote-ref" href="#fn:3">3</a></sup> from start to finish.</td>
</tr>
<tr>
<td>assertNotEqualDirectories(expectedPath : String,obtainedPath : String)</td>
<td>Negated version of assertEqualDirectories.</td>
</tr>
<tr>
<td>assertNotEqualFiles(expectedPath : String,obtainedPath : String)</td>
<td>Negated version of assertEqualFiles.</td>
</tr>
<tr>
<td>assertNotEqualModels([msg : String,]expectedModel : String,obtainedModel : String)</td>
<td>Negated version of assertNotEqualModels.</td>
</tr>
<tr>
<td>assertNotEquals([msg : String,]expected : Any,obtained : Any)</td>
<td>Negated version of assertEquals([msg : String,] expected : Any, obtained : Any).</td>
</tr>
<tr>
<td>assertNotEquals([msg : String,]expected : Real,obtained : Real,ulps : Integer)</td>
<td>Negated version of assertEquals([msg : String,] expected : Real, obtained : Real, ulps : Integer).</td>
</tr>
<tr>
<td>assertTrue([msg : String,]cond : Boolean)</td>
<td>Fails the test with the optional message if is .</td>
</tr>
<tr>
<td>fail(msg : String)</td>
<td>Fails a test with the message .</td>
</tr>
</tbody>
</table>
<p>The table below lists the available option keys which can be used with the model equality assertions, by comparator.</p>
<table>
<thead>
<tr>
<th>Comparator and Key</th>
<th>Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td>EMF, "whitespace"</td>
<td>When set to "ignore", differences in EString attribute values due to whitespace will be ignored. Disabled by default.</td>
</tr>
<tr>
<td>EMF, "ignoreAttributeValueChanges"</td>
<td>Can contain a of strings of the form "package.class.attribute". Differences in the values for these attributes will be ignored. However, if the attribute is set on one side and not on the other, the difference will be reported as normal. Empty by default.</td>
</tr>
<tr>
<td>EMF, "unorderedMoves"</td>
<td>When set to "ignore", differences in the order of the elements within an unordered EReference. Enabled by default.</td>
</tr>
</tbody>
</table>
<p>More importantly, EUnit implements specific assertions for comparing models, files and trees of files. Model comparison is not implemented by the assertions themselves: it is an optional service implemented by some EMC drivers. Currently, EMF models will automatically use EMF Compare as their comparison engine. The rest of the EMC drivers do not support comparison yet. The main advantage of having an abstraction layer implement model comparison as a service is that the test case definition is decoupled from the concrete model comparison engine used.</p>
<p>Model, file and directory comparisons take a snapshot of their operands before comparing them, so EUnit can show the differences right at the moment when the comparison was performed. This is especially important when some of the models are generated on the fly by the EUnit test suite, or when a test case for code generation may overwrite the results of the previous one.</p>
<p>The following figure shows a screenshot of the EUnit graphical user interface. On the left, an Eclipse view shows the results of several EUnit test suites. We can see that the <code>load- models-with-hutn</code> suite failed. The Compare button to the right of "Failure Trace" can be pressed to show the differences between the expected and obtained models, as shown on the right side. EUnit implements a pluggable architecture where <em>difference viewers</em> are automatically selected based on the types of the operands. There are difference viewers for EMF models, file trees and a fallback viewer which converts both operands to strings.</p>
<p><img alt="image" src="../images/EUnitUI.png" /></p>
<h2 id="examples">Examples<a class="headerlink" href="#examples" title="Permanent link">&para;</a></h2>
<h3 id="models-and-tasks-in-the-buildfile">Models and Tasks in the Buildfile<a class="headerlink" href="#models-and-tasks-in-the-buildfile" title="Permanent link">&para;</a></h3>
<p>After describing the basic syntax, we will show how to use EUnit to test an ETL transformation.</p>
<p>The Ant buildfile is shown in the listing below. It has two targets: <code>run-tests</code> (lines 2-19) invokes the EUnit suite, and <code>tree2graph</code> (lines 23-28) is a helper target which transforms model <code>Tree</code> into model <code>Graph</code> using ETL. The <code>&lt;modelTasks&gt;</code> nested element is used to load the input, expected output and output EMF models. <code>Graph</code> is loaded with <code>read</code> set to <code>false</code>: the model will be initially empty, and will be populated by the ETL transformation.</p>
<div class="highlight"><pre><span></span><code><span class="nt">&lt;project&gt;</span>
  <span class="nt">&lt;target</span> <span class="na">name=</span><span class="s">&quot;run-tests&quot;</span><span class="nt">&gt;</span>
    <span class="nt">&lt;epsilon.eunit</span> <span class="na">src=</span><span class="s">&quot;test-external.eunit&quot;</span><span class="nt">&gt;</span>
      <span class="nt">&lt;modelTasks&gt;</span>
        <span class="nt">&lt;epsilon.emf.loadModel</span> <span class="na">name=</span><span class="s">&quot;Tree&quot;</span>
            <span class="na">modelfile=</span><span class="s">&quot;tree.model&quot;</span>
            <span class="na">metamodelfile=</span><span class="s">&quot;tree.ecore&quot;</span>
            <span class="na">read=</span><span class="s">&quot;true&quot;</span> <span class="na">store=</span><span class="s">&quot;false&quot;</span><span class="nt">/&gt;</span>
        <span class="nt">&lt;epsilon.emf.loadModel</span> <span class="na">name=</span><span class="s">&quot;GraphExpected&quot;</span>
            <span class="na">modelfile=</span><span class="s">&quot;graph.model&quot;</span>
            <span class="na">metamodelfile=</span><span class="s">&quot;graph.ecore&quot;</span>
            <span class="na">read=</span><span class="s">&quot;true&quot;</span> <span class="na">store=</span><span class="s">&quot;false&quot;</span><span class="nt">/&gt;</span>
        <span class="nt">&lt;epsilon.emf.loadModel</span> <span class="na">name=</span><span class="s">&quot;Graph&quot;</span>
            <span class="na">modelfile=</span><span class="s">&quot;transformed.model&quot;</span>
            <span class="na">metamodelfile=</span><span class="s">&quot;graph.ecore&quot;</span>
            <span class="na">read=</span><span class="s">&quot;false&quot;</span> <span class="na">store=</span><span class="s">&quot;false&quot;</span><span class="nt">/&gt;</span>
      <span class="nt">&lt;/modelTasks&gt;</span>
    <span class="nt">&lt;/epsilon.eunit&gt;</span>
  <span class="nt">&lt;/target&gt;</span>
  <span class="nt">&lt;target</span> <span class="na">name=</span><span class="s">&quot;tree2graph&quot;</span><span class="nt">&gt;</span>
    <span class="nt">&lt;epsilon.etl</span> <span class="na">src=</span><span class="s">&quot;${basedir}/resources/Tree2Graph.etl&quot;</span><span class="nt">&gt;</span>
      <span class="nt">&lt;model</span> <span class="na">ref=</span><span class="s">&quot;Tree&quot;</span><span class="nt">/&gt;</span>
      <span class="nt">&lt;model</span> <span class="na">ref=</span><span class="s">&quot;Graph&quot;</span><span class="nt">/&gt;</span>
    <span class="nt">&lt;/epsilon.etl&gt;</span>
  <span class="nt">&lt;/target&gt;</span>
<span class="nt">&lt;/project&gt;</span>
</code></pre></div>
<p>The EOL script is shown in the listing below: it invokes the helper task (line 3) and checks that the obtained model is equal to the expected model (line 4). Internally, EMC will perform the comparison using EMF Compare.</p>
<pre class="prettyprint lang-eol"><code>@test
operation transformationWorksAsExpected() {
  runTarget("tree2graph");
  assertEqualModels("GraphExpected", "Graph");
}</code></pre>
<h3 id="models-and-tasks-in-the-eol-script">Models and Tasks in the EOL Script<a class="headerlink" href="#models-and-tasks-in-the-eol-script" title="Permanent link">&para;</a></h3>
<p>In the previous section, the EOL file is kept very concise because the model setup and model management tasks under test were specified in the Ant buildfile. In this section, we will inline the models and the tasks into the EOL script instead.</p>
<p>The Ant buildfile is shown in the listing below. It is now very simple: all it needs to do is run the EOL script. However, since we will parse HUTN in the EOL script, we must make sure the s of the metamodels are registered.</p>
<div class="highlight"><pre><span></span><code><span class="nt">&lt;project&gt;</span>
  <span class="nt">&lt;target</span> <span class="na">name=</span><span class="s">&quot;run-tests&quot;</span><span class="nt">&gt;</span>
    <span class="nt">&lt;epsilon.emf.register</span> <span class="na">file=</span><span class="s">&quot;tree.ecore&quot;</span><span class="nt">/&gt;</span>
    <span class="nt">&lt;epsilon.emf.register</span> <span class="na">file=</span><span class="s">&quot;graph.ecore&quot;</span><span class="nt">/&gt;</span>
    <span class="nt">&lt;epsilon.eunit</span> <span class="na">src=</span><span class="s">&quot;test-inlined.eunit&quot;</span><span class="nt">/&gt;</span>
  <span class="nt">&lt;/target&gt;</span>
<span class="nt">&lt;/project&gt;</span>
</code></pre></div>
<p>The EOL script used is shown below. Instead of loading models through the Ant tasks, the <code>loadHutn</code> operation has been used to load the models. The test itself is almost the same, but instead of running a helper target, it invokes an operation which creates and runs the ETL Ant task through the <code>antProject</code> variable provided by EUnit, taking advantage of the support in EOL for invoking Java code through reflection.</p>
<pre class="prettyprint lang-eol"><code>@model
operation loadModels() {
  loadHutn("Tree", '@Spec {Metamodel {nsUri: "Tree" }}
Model {
  Tree "t1" { label : "t1" }
  Tree "t2" {
    label : "t2"
    parent : Tree "t1" 
  }
}
');

  loadHutn("GraphExpected", '@Spec {Metamodel {nsUri: "Graph"}}
Graph { nodes :
  Node "t1" {
    name : "t1"
    outgoing : Edge { source : Node "t1" target : Node "t2" }
  },
  Node "t2" {
    name : "t2"
  }
}
');

  loadHutn("Graph", '@Spec {Metamodel {nsUri: "Graph"}}');
}

@test
operation transformationWorksAsExpected() {
  runETL();
  assertEqualModels("GraphExpected", "Graph");
}

operation runETL() {
  var etlTask := antProject.createTask("epsilon.etl");
  etlTask.setSrc(new Native('java.io.File')(
    antProject.getBaseDir(), 'resources/etl/Tree2Graph.etl'));
  etlTask.createModel().setRef("Tree");
  etlTask.createModel().setRef("Graph");
  etlTask.execute();
}</code></pre>
<h2 id="extending-eunit">Extending EUnit<a class="headerlink" href="#extending-eunit" title="Permanent link">&para;</a></h2>
<p>EUnit is based on the Epsilon platform, but it is designed to accommodate other technologies. In this section we will explain several strategies to add support for these technologies to EUnit.</p>
<p>EUnit uses the Epsilon Model Connectivity abstraction layer to handle different modelling technologies. Adding support for a different modelling technology only requires implementing another driver for EMC. Depending on the modelling technology, the driver can provide optional services such as model comparison, caching or reflection.</p>
<p>EUnit uses Ant as a workflow language: all model management tasks must be exposed through Ant tasks. It is highly encouraged, however, that the Ant task is aware of the EMC model repository linked to the Ant project. Otherwise, users will have to shuffle the models out from and back into the repository between model management tasks. As an example, a helper target for an ATL transformation with the existing Ant tasks needs to:</p>
<ol>
<li>Save the input model in the EMC model repository to a file, by invoking the <code>&lt;epsilon.storeModel&gt;</code> task.</li>
<li>Load the metamodels and the input model with <code>&lt;atl.loadModel&gt;</code>.</li>
<li>Run the ATL transformation with <code>&lt;atl.launch&gt;</code>.</li>
<li>Save the result of the ATL transformation with <code>&lt;atl.saveModel&gt;</code>.</li>
<li>Load it into the EMC model repository with <code>&lt;epsilon.emf.loadModel&gt;</code>.</li>
</ol>
<p>The listing below shows the Ant buildfile which would be required for running these steps, showing that while EUnit can use the existing ATL tasks as-is, the required helper task is quite longer than the one shown above. Ideally, Ant tasks should be adapted or wrapped to use models directly from the EMC model repository.</p>
<div class="highlight"><pre><span></span><code><span class="nt">&lt;project&gt;</span>
  <span class="c">&lt;!-- ... omitted ... --&gt;</span>
  <span class="nt">&lt;target</span> <span class="na">name=</span><span class="s">&quot;atl&quot;</span><span class="nt">&gt;</span>
    <span class="c">&lt;!-- Create temporary files for input and output models --&gt;</span>
    <span class="nt">&lt;tempfile</span> <span class="na">property=</span><span class="s">&quot;atl.temp.srcfile&quot;</span> <span class="nt">/&gt;</span>
    <span class="nt">&lt;tempfile</span> <span class="na">property=</span><span class="s">&quot;atl.temp.dstfile&quot;</span> <span class="nt">/&gt;</span>

    <span class="c">&lt;!-- Save input model to a file --&gt;</span>
    <span class="nt">&lt;epsilon.storeModel</span> <span class="na">model=</span><span class="s">&quot;Tree&quot;</span>
      <span class="na">target=</span><span class="s">&quot;${atl.temp.srcfile}&quot;</span> <span class="nt">/&gt;</span>

    <span class="c">&lt;!-- Load the metamodels and the source model --&gt;</span>
    <span class="nt">&lt;atl.loadModel</span> <span class="na">name=</span><span class="s">&quot;TreeMM&quot;</span> <span class="na">metamodel=</span><span class="s">&quot;MOF&quot;</span>
      <span class="na">path=</span><span class="s">&quot;metamodels/tree.ecore&quot;</span> <span class="nt">/&gt;</span>
    <span class="nt">&lt;atl.loadModel</span> <span class="na">name=</span><span class="s">&quot;GraphMM&quot;</span> <span class="na">metamodel=</span><span class="s">&quot;MOF&quot;</span>
      <span class="na">path=</span><span class="s">&quot;metamodels/graph.ecore&quot;</span> <span class="nt">/&gt;</span>
    <span class="nt">&lt;atl.loadModel</span> <span class="na">name=</span><span class="s">&quot;Tree&quot;</span> <span class="na">metamodel=</span><span class="s">&quot;TreeMM&quot;</span>
      <span class="na">path=</span><span class="s">&quot;${atl.temp.srcfile}&quot;</span> <span class="nt">/&gt;</span>

    <span class="c">&lt;!-- Run ATL and save the model --&gt;</span>
    <span class="nt">&lt;atl.launch</span> <span class="na">path=</span><span class="s">&quot;transformation/tree2graph.atl&quot;</span><span class="nt">&gt;</span>
      <span class="nt">&lt;inmodel</span> <span class="na">name=</span><span class="s">&quot;IN&quot;</span>   <span class="na">model=</span><span class="s">&quot;Tree&quot;</span> <span class="nt">/&gt;</span>
      <span class="nt">&lt;outmodel</span> <span class="na">name=</span><span class="s">&quot;OUT&quot;</span> <span class="na">model=</span><span class="s">&quot;Graph&quot;</span> <span class="na">metamodel=</span><span class="s">&quot;GraphMM&quot;</span> <span class="nt">/&gt;</span>
    <span class="nt">&lt;/atl.launch&gt;</span>
    <span class="nt">&lt;atl.saveModel</span> <span class="na">model=</span><span class="s">&quot;Graph&quot;</span> <span class="na">path=</span><span class="s">&quot;${atl.temp.dstfile}&quot;</span> <span class="nt">/&gt;</span>

    <span class="c">&lt;!-- Load it back into the EUnit suite --&gt;</span>
    <span class="nt">&lt;epsilon.emf.loadModel</span> <span class="na">name=</span><span class="s">&quot;Graph&quot;</span>
      <span class="na">modelfile=</span><span class="s">&quot;${atl.temp.dstfile}&quot;</span>
      <span class="na">metamodeluri=</span><span class="s">&quot;Graph&quot;</span>
      <span class="na">read=</span><span class="s">&quot;true&quot;</span> <span class="na">store=</span><span class="s">&quot;false&quot;</span> <span class="nt">/&gt;</span>

    <span class="c">&lt;!-- Delete temporary files --&gt;</span>
    <span class="nt">&lt;delete</span> <span class="na">file=</span><span class="s">&quot;${atl.temp.srcfile}&quot;</span> <span class="nt">/&gt;</span>
    <span class="nt">&lt;delete</span> <span class="na">file=</span><span class="s">&quot;${atl.temp.dstfile}&quot;</span> <span class="nt">/&gt;</span>
  <span class="nt">&lt;/target&gt;</span>
<span class="nt">&lt;/project&gt;</span>
</code></pre></div>
<p>Another advantage in making model management tasks EMC-aware is that they can easily “export” their results as models, making them easier to test. For instance, the EVL Ant task allows for exporting its results as a model by setting the attribute <code>exportAsModel</code> to <code>true</code>. This way, EOL can query the results as any regular model. This is simpler than transforming the validated model to a problem metamodel. The example in the listing below checks that a single warning was produced due to the expected rule (<code>LabelsStartWithT</code>) and the expected model element.</p>
<pre class="prettyprint lang-eol"><code>@test
operation valid() {
  var tree := new Tree!Tree;
  tree.label := '1n';
  runTarget('validate-tree');
  var errors := EVL!EvlUnsatisfiedConstraint.allInstances;
  assertEquals(1, errors.size);
  var error := errors.first;
  assertEquals(tree, error.instance);
  assertEquals(false, error.constraint.isCritique);
  assertEquals('LabelsStartWithT', error.constraint.name);
}</code></pre>
<div class="footnote">
<hr />
<ol>
<li id="fn:1">
<p>CPU time only measures the time elapsed in the thread used by EUnit, and is more stable with varying system load in single-threaded programs.&#160;<a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text">&#8617;</a></p>
</li>
<li id="fn:2">
<p>See <code>JAVA.UTIL.REGEX.PATTERN</code> for details about the accepted syntax for regular expressions.&#160;<a class="footnote-backref" href="#fnref:2" title="Jump back to footnote 2 in the text">&#8617;</a></p>
</li>
<li id="fn:3">
<p>See footnote <code>assertLineWithMatch</code> for details about the syntax of the regular expressions.&#160;<a class="footnote-backref" href="#fnref:3" title="Jump back to footnote 3 in the text">&#8617;</a></p>
</li>
</ol>
</div>
                
              
              
                


              
            </article>
          </div>
        </div>
        
      </main>
      
        
<footer class="md-footer">
  
    <div class="md-footer-nav">
      <nav class="md-footer-nav__inner md-grid">
        
          <a href="../emg/" title="Model Generation (EMG)" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
            <div class="md-flex__cell md-flex__cell--shrink">
              <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
            </div>
            <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
              <span class="md-flex__ellipsis">
                <span class="md-footer-nav__direction">
                  Previous
                </span>
                Model Generation (EMG)
              </span>
            </div>
          </a>
        
        
          <a href="../pinset/" title="Dataset Extraction (Pinset)" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
            <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
              <span class="md-flex__ellipsis">
                <span class="md-footer-nav__direction">
                  Next
                </span>
                Dataset Extraction (Pinset)
              </span>
            </div>
            <div class="md-flex__cell md-flex__cell--shrink">
              <i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
            </div>
          </a>
        
      </nav>
    </div>
  
  <div class="md-footer-meta md-typeset">
    <div class="md-footer-meta__inner md-grid">
      <div class="md-footer-copyright">
        
          <div class="md-footer-copyright__highlight">
            Copyright © Eclipse Foundation, Inc. All Rights Reserved.
          </div>
        
        powered by
        <a href="https://www.mkdocs.org">MkDocs</a>
        and
        <a href="https://squidfunk.github.io/mkdocs-material/">Material for MkDocs</a>
      </div>
      <div class="md-footer-copyright epsilon-eclipse-links">
          <ul>
              <li><a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
              <li><a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
              <li><a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
          </ul>
      </div>
      
  <div class="md-footer-social">
    
      
      
        
        
      
      <a href="https://twitter.com/eclipseepsilon" target="_blank" rel="noopener" title="twitter.com" class="md-footer-social__link">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
      </a>
    
      
      
        
        
      
      <a href="https://youtube.com/epsilondevs" target="_blank" rel="noopener" title="youtube.com" class="md-footer-social__link">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg>
      </a>
    
  </div>

    </div>
  </div>
</footer>
      
    </div>
    <div class="md-dialog" data-md-component="dialog">
      <div class="md-dialog__inner md-typeset"></div>
    </div>
    <script id="__config" type="application/json">{"base": "../..", "features": [], "translations": {"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing"}, "search": "../../assets/javascripts/workers/search.d351de03.min.js", "version": null}</script>
    
    
      <script src="../../assets/javascripts/bundle.a1609d9a.min.js"></script>
      
        <script src="https://unpkg.com/mermaid@8.5.1/dist/mermaid.min.js"></script>
      
        <script src="../../assets/javascript/mermaid.js"></script>
      
        <script src="../../assets/javascript/jquery.js"></script>
      
        <script src="../../assets/javascript/slick.min.js"></script>
      
        <script src="../../assets/javascript/google-code-prettify/prettify.js"></script>
      
        <script src="../../assets/javascript/google-code-prettify/lang-emfatic.js"></script>
      
        <script src="../../assets/javascript/google-code-prettify/lang-epsilon.js"></script>
      
        <script src="../../assets/javascript/google-code-prettify/prettyprint.js"></script>
      
        <script src="../../assets/javascript/extra.js"></script>
      
        <script src="https://w.appzi.io/w.js?token=jlv6W"></script>
      
    
  </body>
</html>