Open Closed

Project unit test default doesn't work outsite ABP Studio #10945


User avatar
0
marco.susani created
  • Template: app-nolayers
  • Template Type: Modern
  • Created ABP Studio Version: 3.1.1
  • Current ABP Studio Version: 3.1.6
  • Multi-Tenancy: Yes
  • UI Framework: react
  • Theme: leptonx
  • Theme Style: system
  • Database Provider: ef
  • Database Management System: sqlserver
  • Public Website: Yes
  • Social Login: Yes
  • Include Tests: Yes
  • Use Local References: No
  • Optional Modules:
    • GDPR
    • TextTemplateManagement
    • AuditLogging
    • OpenIddictAdmin
    • LowCode
    • Elsa
  • Selected Languages: Italian, English
  • AI Management Enabled: Yes
  • Selected AI Providers: OpenAI
  • Default Language: Italian
  • Create Command: abp new Nicma.Idp -t app-nolayers --modern --modular --ui-framework react --database-provider ef --database-management-system sqlserver --theme leptonx --tests --public-website --without-cms-kit --dont-run-install-libs --dont-run-bundling -no-file-management -no-language-management -low-code --elsa

Hello,

if i run default abp studio unit test generated works fine in abp studio. But if i run the unit tests in terminal or in other IDEs (Visual studio, riders) give some errors.

Following files are the logs: log_all_tests.log test.log

Markdown supported.
Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)

3 Answer(s)
  • User Avatar
    0
    AI-Bot created
    Support Team ABP Agent
    • This is not an “ABP Studio vs. CLI” problem by itself. What’s happening is: when you run tests inside ABP Studio, it sets up some environment / working-directory / configuration in a way that your test host can initialize successfully; but when you run from terminal / VS / Rider, the test host starts with different defaults and your ABP app initialization fails with:

      Volo.Abp.AbpInitializationException ... OnApplicationInitializationModuleLifecycleContributor ...

      Instances cannot be resolved and nested lifetimes cannot be created from this lifetimeScope ...

      (mentions Volo.Abp.LowCode.AbpLowCodeDomainModule)

    Solution

    1) Run your tests from the “root” EFCore test project (not Domain/Application abstract tests)

    ABP templates use abstract tests in .Domain.Tests / .Application.Tests and concrete implementations in .EntityFrameworkCore.Tests (or .MongoDB.Tests). If you execute the abstract test projects directly (common in Rider/VS “Run all tests”), initialization can differ and you may hit DI/runtime issues.

    Run tests specifically from:

    • *.EntityFrameworkCore.Tests (and/or *.Web.Tests if you have it)

    In CLI:

    dotnet test test/Nicma.Idp.EntityFrameworkCore.Tests/Nicma.Idp.EntityFrameworkCore.Tests.csproj
    

    2) Disable UoW transactions and dynamic permission/feature stores for test host

    The failure you show is during module initialization and often occurs in integration test environments due to transactional/UoW behavior + initialization-time DB operations (feature/permission caches, etc.). Configure your EF Core test module to disable those behaviors.

    In your NicmaIdpEntityFrameworkCoreTestModule (or equivalent EFCore test module class), add:

    using Volo.Abp.FeatureManagement;
    using Volo.Abp.PermissionManagement;
    using Volo.Abp.Uow;
    using Microsoft.Extensions.DependencyInjection;
    
    public override void ConfigureServices(ServiceConfigurationContext context)
    {
        Configure<FeatureManagementOptions>(options =>
        {
            options.SaveStaticFeaturesToDatabase = false;
            options.IsDynamicFeatureStoreEnabled = false;
        });
    
        Configure<PermissionManagementOptions>(options =>
        {
            options.SaveStaticPermissionsToDatabase = false;
            options.IsDynamicPermissionStoreEnabled = false;
        });
    
        context.Services.AddAlwaysDisableUnitOfWorkTransaction();
    
        Configure<AbpUnitOfWorkDefaultOptions>(options =>
        {
            options.TransactionBehavior = UnitOfWorkTransactionBehavior.Disabled;
        });
    }
    

    This makes the test host much more deterministic across runners (CLI/VS/Rider/Studio).

    3) Ensure the test runner uses the correct environment/appsettings

    Also make sure your test project has the expected environment (many templates assume ASPNETCORE_ENVIRONMENT=Test and load appsettings.Test.json or similar). In terminal you can force it:

    PowerShell

    $env:ASPNETCORE_ENVIRONMENT="Test"
    dotnet test
    

    bash

    ASPNETCORE_ENVIRONMENT=Test dotnet test
    

    (ABP Studio may already be doing this for you.)


    Sources

    • https://abp.io/docs/10.7/testing/integration-tests
    • https://abp.io/docs/latest/testing/unit-tests

    This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    marco.susani created

    I run the "ASPNETCORE_ENVIRONMENT=Test dotnet test" command in the solution root but i've the same errors.

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    marco.susani created

    If i run every test as a single unit test in riders they works, but if i run the entire collections, the first one pass and the others no!

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.8.0-preview. Updated on October 21, 2026, 11:09
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.